首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取地图类型的最大缩放位置

如何获取地图类型的最大缩放位置
EN

Stack Overflow用户
提问于 2014-04-24 17:39:38
回答 1查看 556关注 0票数 0

在Google的JS API参考页面上,它说方法getMaxZoomAtLatLng

返回卫星地图类型在特定LatLng上可用的最大缩放级别。

由于某些原因,地形图位于卡尔加里的级15的底部(例如),但是卫星地图类型可以一直到缩放19。我有两个地图服务同时运行,我希望地图是同步的,但是如果它们不能达到相同的缩放级别,它们就不能同步。

因此,基本上是,我想知道地形图(或任何地图类型)何时不能应付,并触发一些特例函数.

对于某一特定地图类型的位置,是否有获得最大缩放的方法或替代方法(因为上述方法仅适用于卫星)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-24 19:46:01

同时,我决定使用的一个解决方案是在我的ArcGIS地图上附加一个ArcGIS处理程序(也可以通过传单轻松地做到这一点),并在谷歌地图上附加一个maptypeid_changed处理程序。

因此,对于ArcGIS地图(eMap),我这样做了:

代码语言:javascript
复制
eMap.on('zoom-end', function (e) {
  // map zooms are synced
  gMap.setCenter(esri.geometry.webMercatorToGeographic(e.extent.getCenter()));
  gMap.setZoom(e.level);

  // if the google map couldn't do it, reset eMap
  if (gMap.getZoom() !== e.level) {
    eMap.setZoom(gMap.getZoom());
    // runs the handler again
  }
});

如果谷歌地图被设置为卫星,那么它也需要触发相同的检查,所以我强迫它执行另一个zoomEnd处理程序:

代码语言:javascript
复制
google.maps.event.addListener(gMap, 'maptypeid_changed', function () { 
  // for some reason, ESRI has issues setting zoom to current zoom
  // so it has to run an initial check before calling zoomEnd
  if (gMap.getZoom() !== eMap.getZoom()) {
    eMap.setZoom(gMap.getZoom());
  }
});

希望这对某人有所帮助,但实际上,我期待着看到一个比这更好的解决方案。如果谷歌的地图无法达到一定的缩放级别,这似乎是一种非常复杂的方法,只需要启动一个函数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23276034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档