【问题标题】:zoom 18 projection放大 18 投影
【发布时间】:2013-01-30 19:43:10
【问题描述】:

我已经编写了一个与 overlay.getTileUrl(tileCoord,zoom) 一起使用的平铺图像生成器,该生成器对于地图类型 Road_Map 可按预期工作,缩放级别为 21

function tile2lng(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)))); }

在 lat/lng 37.21 / -77.26

当卫星地图缩放到 18 级时,请求的叠加图块的图块坐标计算为 lat/lng 27.37 / -77.26

实际上,加载地图时似乎有两次传递。首先正确请求平铺 lat/lng,然后发生 Projection_Changed 事件,然后重新请求平铺但 lat/lng 计算不正确。在地图缩放 18 到 21 时显示的卫星图块的投影似乎不是标准的 Google 墨卡托投影。 overlay.getTileURL(coord,zoom) 应该如何检测到这种变化?

当地图缩放 18 到 21 时,计算卫星图块的纬度/经度的正确方法是什么?

【问题讨论】:

  • 缩放 18 的投影与其他缩放级别没有区别。您使用的是哪种叠加类型? (我猜这是一个 ImageMapType )。如果是这样,您的 getTileUrl 函数应该接受 (Point: (x:number, y:number)) 作为参数并返回一个 URL 作为指向自定义图块的字符串。请发布您的完整 getTileUrl() 函数。
  • 请参见 [link]vafwis.org/fwis/GoogleMaps/testLatLngZoom.html 的示例,该示例从缩放 17 开始。缩放到 18 并且平铺坐标到 lat/lng 给出了错误的位置

标签: google-maps-api-3 zooming satellite


【解决方案1】:

而答案是:此时,没有暴露的投影参数。

我真正需要的:

map.setTilt(0);

我没有意识到谷歌地图会自动渲染卫星变焦 18 或更高,倾斜设置为 45,这会改变标准基础地图投影。

快乐的日子!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-13
    • 2011-03-05
    • 1970-01-01
    相关资源
    最近更新 更多