【问题标题】:Negate Mercator Projection否定墨卡托投影
【发布时间】: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


【解决方案1】:

目前没有解决方法来否定墨卡托投影,因为这是 Maps JavaScript API 根据 documentation 使用的。谷歌的公共问题跟踪器中已经有一个功能请求,要求不使用墨卡托投影。

您可以在这里查看:https://issuetracker.google.com/111576221

为了表达您的兴趣,请在问题上加注星标以获取更新并离开 cmets 了解更多信息。

【讨论】:

    猜你喜欢
    • 2011-03-05
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多