gpt4 book ai didi

google-maps - 自定义叠加 map 类型和 mapTypeControl

转载 作者:行者123 更新时间:2023-12-01 09:33:46 24 4
gpt4 key购买 nike

我已成功将 OSM 作为新的基础 map 类型添加到我的 Google Maps API 应用程序中。

接下来我添加了一个新的叠加 map 类型,它向 map 添加了山体阴影。关于叠加 map 类型的文档 https://developers.google.com/maps/documentation/javascript/maptypes?hl=en#OverlayMapTypes说:

“[...]您可以将 map 类型添加到现有的 MapType[...]”

“叠加 map 类型将显示在它们附加到的任何基础 map 之上。”

并且 “除了我们在 ROADMAP map 类型之上创建了一个图 block 叠加层 MapType 之外,以下示例与上一个示例相同:”

但在代码示例中,叠加 map 类型始终显示在您选择的任一 map 类型上。

  1. 如何使我的山体阴影叠加 map 类型仅显示在 map 类型“roadmap”和我的自定义“OSM” map 类型上? 编辑: 更准确地说:实际上我想知道,是否有一种方法可以像上面的文档建议的那样自动执行此操作。我知道如何通过监听 maptypeid_changed 事件手动执行此操作。

  2. 有没有办法将我的叠加 map 类型作为复选框添加到 mapTypeControl,就像在默认卫星 map 类型上使用“标签”或在路线图 map 类型上使用“地形”一样?编辑: 直到几天前,上面的官方文档提出了一种方法来执行此操作,但没有准确描述它并且链接示例已损坏(404-link)。您的用户在这里发现了同样的问题:Google maps api: Customising the MapTypeControl for separate map overlays

编辑:我在下面发布了我当前解决方案的 jsFiddl。

最佳答案

好吧,看起来没有本地方法可以将叠加 map 类型绑定(bind)到基础 map 类型或使用 Google 的 map 类型控件来控制叠加 map 类型。

为了解决这个问题,我最终做了以下工作: http://jsfiddle.net/lejared/720L7wu0/3/

var ReliefCtrl = {/* see fiddle */};

我构建了一个自定义控件(具有原生 Google map 控件的外观)。此控件切换我的叠加 map 类型(山体阴影)。您可以定义一组适合此叠加 map 类型的基础 map 类型。如果选择了合适的 basemap 类型,该控件将自动显示/隐藏自身。

2017-02-01:更新 fiddle 以匹配 googles map 控件的新原生外观。

关于google-maps - 自定义叠加 map 类型和 mapTypeControl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12013695/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com