【问题标题】:Tabbed InfoWindow Google Maps API v3 using a KML layer使用 KML 层的选项卡式 InfoWindow Google Maps API v3
【发布时间】:2012-04-13 15:29:50
【问题描述】:

我正在尝试将标签添加到此站点的信息窗口http://nctcog.org/trans/data/trafficcounts/index.asp

由于我在数据库中存储了数以千计的点,随着地图中心的变化,我抓取地图边界并将它们传递到构建 KML 文件的页面,然后使用 google.maps.KmlLayer 加载它们。信息窗口中的大部分数据与 lat,lon 存储在同一个表中,我在构建 KML 文件时将其与坐标一起加载。

我尝试了几种操作标签的方法,但均未成功。

我知道可以添加一个侦听器来操作信息窗口,但由于我没有将我的标记与侦听器一起添加,我如何将它与正确的标记联系起来?

【问题讨论】:

  • 听起来您有两个问题:1. 添加选项卡和 2. 将 InfoWindow 分配给标记。它们有什么关系吗?
  • 我猜是这样,因为它似乎实现选项卡式窗口的唯一方法是通过侦听器事件。

标签: google-maps kml


【解决方案1】:

困难的部分是从 KML 文件中操作标记。据我尝试,当您使用 KMLayer 时,没有办法这样做。由于您是动态创建 KML,这让事情变得更容易。

幸运的是 :) 我最近处理了一个 KML 问题并且有一个起始文件。一个令人讨厌的“功能”是 AJAX 调用迫使我将 HTML 和 KML 放在同一台公共计算机中。我无法离线工作。你可以试试本地网络服务器,我没有。

https://files.nyu.edu/hc742/public/googlemaps/kmlcircle.html

关键思想是将下面显示的createMarker 的默认功能替换为您自己的函数名称。在这种情况下,我添加了圈子,在您的圈子中,您需要添加 InfoWindows。

    geoXml = new geoXML3.parser({
      map: map, 
      createMarker: addCircle});

至少可以通过两种方式向信息窗口添加标签。 JQuery wayTabber Way(加载此页面后点击绿线)

【讨论】:

  • 只是为了确保我理解,通过将“placemark”传递给您的 AddCircle 函数,它可以访问所有子元素,这就是您可以进行 placemark.StyleUrl 分配的方式。通过这种逻辑,我可以上一层并传入“文档”并让自己也可以访问
  • 我使用placemark 的方式是简单地遍历KML 的 元素。我什至不知道如何升级到。我复制了文档示例。 placemark 作为标准变量出现。 code.google.com/p/geoxml3/wiki/Usage
猜你喜欢
  • 1970-01-01
  • 2013-06-27
  • 2011-02-20
  • 1970-01-01
  • 1970-01-01
  • 2013-06-28
  • 2012-01-06
  • 1970-01-01
  • 2011-11-06
相关资源
最近更新 更多