我有一個需要與之交談的自定義地圖類型API。在Google Maps API v3中獲取自定義切片的中心LatLng點
我想使用Google地圖的'tile'功能來獲取地圖圖像。我有這樣的瓷磚設置:https://developers.google.com/maps/documentation/javascript/examples/maptype-overlay?hl=nl
獲取不同瓷磚圖像的API要求我爲每個瓷磚設置一箇中心點。
那麼我如何得到/計算每個瓷磚的中心LatLng點?
我有一個需要與之交談的自定義地圖類型API。在Google Maps API v3中獲取自定義切片的中心LatLng點
我想使用Google地圖的'tile'功能來獲取地圖圖像。我有這樣的瓷磚設置:https://developers.google.com/maps/documentation/javascript/examples/maptype-overlay?hl=nl
獲取不同瓷磚圖像的API要求我爲每個瓷磚設置一箇中心點。
那麼我如何得到/計算每個瓷磚的中心LatLng點?
好吧我想通了。
這就是我所做的。
您有每個圖塊(x,y)和縮放以及圖塊大小的圖塊座標。
所以首先我們做一個新的谷歌MapsPoint到瓷磚的中心點:
var centerpoint = new google.maps.Point((coord.x * tileSize) + (tileSize/2), ((coord.y + 1) * tileSize) + (tileSize/2));
然後轉換的x,y座標,以經緯度(轉換功能和它背後的數學可以http://www.maptiler.org找到)
所以它實際上是非常簡單的...
您也可以直接計算的話:
n = 2^zoom
lon_deg = xtile/n * 360.0 - 180.0
lat_rad = arctan(sinh(π * (1 - 2 * ytile/n)))
lat_deg = lat_rad * 180.0/π
各種語言的源代碼示例:http://wiki.openstreetmap.org/wiki/Slippy_map_tilenames#Tile_numbers_to_lon..2Flat。