أكثر

حساب حدود خط الطول للبلاط الفردي الذي تم إنشاؤه من gdal2tiles

حساب حدود خط الطول للبلاط الفردي الذي تم إنشاؤه من gdal2tiles


لدي العديد من مصادر التجانب التي تم إنشاؤها باستخدام gdal2tiles وأود عرضها على نفس الخريطة. لذلك ، عند تقديم بلاطة ، أحتاج إلى تحديد المصدر الذي سأخدمه منه ، والتحقق من الحدود.

هل يعرف أي شخص كيفية حساب حدود خطوط الطول لبلاط واحد قائم فقط على التكبير ، و x ، و y (من بنية الملف التي تم إنشاؤها بواسطة gdal2tiles)؟ راجع للشغل: أنا أستخدم Google Maps API v3 في حالة وجود حاجة لاستدعاء بعض الوظائف من API للمساعدة في الحسابات.

السبب الذي يجعلني مقيدًا بالتكبير / التصغير و x و y هو أن المربعات لا يتم استدعاؤها فقط من خلال تراكب على الخريطة ولكن أيضًا بعض وظائف الطباعة المخصصة التي تسمح بالطباعة خارج الخريطة.


يتم وصف الرياضيات في:

http://www.maptiler.org/google-maps-coordinates-tile-bounds-project/

... بما في ذلك الكود المصدري لأداة سطر الأوامر والعرض التوضيحي عبر الإنترنت.

إنها أيضًا رياضيات بسيطة جدًا:

دالة Tile2long (x، z) {return (x / Math.pow (2، z) * 360-180) ؛ } function tile2lat (y، z) {var n = Math.PI-2 * Math.PI * y / Math.pow (2، z)؛ return (180 / Math.PI * Math.atan (0.5 * (Math.exp (n) -Math.exp (-n)))) ؛ }

لاحظ الفرق بين XYZ / Google مقابل TMS في المحور ص.

يمنحك Google Maps API V3 الوظائف المطلوبة أيضًا عبر.fromPointToLatLng ()منmap.getProject ().


قد تكون صفحة ويكي OpenStreetMap هذه مفيدة للغات أخرى أيضًا:

https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames#Implementations


هذا هو رمز العمل الخاص بي:

عينة jsfiddle من تراكب نوع خريطة صورة جوجل

jsfiddle عينة أخرى من صورة تراكب google

دالة Tile2long (x، z) {return (x / Math.pow (2، z) * 360-180) ؛ } function tile2lat (y، z) {var n = Math.PI-2 * Math.PI * y / Math.pow (2، z)؛ return (180 / Math.PI * Math.atan (0.5 * (Math.exp (n) -Math.exp (-n)))) ؛ } var x = format.x ؛ فار ص = تنسيق ص ؛ var z = تكبير ؛ var NW_long = Tile2long (x، z) ؛ var SW_long = Tile2long (x، z) ؛ var SW_lat = Tiles2lat (y + 1، z) ؛ var NE_long = Tile2long (x + 1، z) ؛ var NE_lat = Tiles2lat (ذ ، ض) ؛ var export_bbox = SW_long + '،' + SW_lat + '،' + NE_long + '،' + NE_lat؛ var url_param = '& format = png & size = 256،256 & transparent = true & f = image & bboxSR = 4326 & imageSR = 4326'؛ var url_layers = "var root_url = 'https://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StateCityHighway_USA/MapServer/export؟bbox=' ؛ var tile_url = root_url + export_bbox + url_param + url_layers ؛

maptiler احصل على bbox من رقم coodinate والتكبير

كيفية حساب تنسيق google للأرقام ، تكبير / تصغير ، تحويل ، طول خط الطول ، إلخ ...


شاهد الفيديو: للحصول علي خطوط الطول و دوائر العرض عن طريق جوجل