【发布时间】:2020-05-17 12:14:05
【问题描述】:
我使用谷歌地图通过图像地图类型将图像用作地图。这张地图来自电脑游戏,因此是虚构的。但它包含街道和建筑物。我通过添加用作多边形路径点的圆圈来创造与这些建筑物接壤的可能性。要编辑多边形,路径点仍然显示为可拖动的圆圈。
问题是这些圆向北或向南越来越大,尽管它们的半径相同。
我知道这是因为 Google 地图假定它是一个球体,因此使用墨卡托投影来计算圆的半径。
我已经尝试通过创建自己的投影来解决这个问题。但这并没有按预期工作。
我尝试了以下投影:
fromLatLngToPoint: function (latLng, opt_point) {
let point = opt_point || new google.maps.Point(0, 0),
TILE_SIZE = 256,
origin = new google.maps.Point(TILE_SIZE / 2, TILE_SIZE / 2),
pixelsPerLonDegree_ = TILE_SIZE / 360,
pixelsPerLatDegree_ = TILE_SIZE / 180
point.x = origin.x + latLng.lng() * pixelsPerLonDegree_
point.y = origin.y + latLng.lat() * pixelsPerLatDegree_
return point
},
fromPointToLatLng: function (point) {
let TILE_SIZE = 256,
origin = new google.maps.Point(TILE_SIZE / 2, TILE_SIZE / 2),
pixelsPerLonDegree_ = TILE_SIZE / 360,
pixelsPerLatDegree_ = TILE_SIZE / 180,
lng = (point.x - origin.x) / pixelsPerLonDegree_,
lat = (point.y - origin.y) / pixelsPerLatDegree_
return new google.maps.LatLng(lat, lng)
},
在此投影中,地图中间的圆圈 (0,0) 显示为鸡蛋,圆圈越向北或向南越宽。
我根本不知道为什么圆会改变它的形状。
【问题讨论】:
-
你可以为多边形路径句柄使用圆形标记吗?
标签: javascript google-maps google-maps-api-3 map-projections