【问题标题】:Add HTML class/ID to Google Maps Marker (API V3)将 HTML 类/ID 添加到 Google 地图标记 (API V3)
【发布时间】:2011-04-29 17:20:14
【问题描述】:

如何将类或 ID 添加到 Google Maps API V3 标记?我希望能够使用 jQuery 访问标记。

编辑:您好 clarkf,感谢您的回复。使用 Firebug 在检查我的地图时我无法看到这些类,但我确实注意到有两个 div。一个用于图标,一个用于按钮。

我想做的是: 我在网站上显示了丢失的宠物列表,它们也显示在地图上。列表中的每只宠物都有一个唯一的 ID,我希望地图上的那些使用一个类来镜像这个 ID,因为 ID 需要是唯一的,并且每只宠物可能有几个点。所以我正在寻找一种将类添加到地图标记的方法。这样,当用户从列表中选择丢失的宠物时,它会在地图上突出显示它,反之亦然。

谢谢

瑞克

【问题讨论】:

  • 这听起来很棘手。为什么需要通过 jQuery 访问它们? API 非常全面,应该允许您通过它进行大部分操作。 编辑:经过一番戳戳,我发现地图标记已经有ids。他们的classgmnoprint,他们的ID 是mtgt_#.#### 的模式(我找到了`mtgt_A.1000)。

标签: javascript google-maps google-maps-api-3


【解决方案1】:

经过一番催促,我发现地图标记都有 gmnoprint 的类(假设 Google Maps No 打印)。所以,我做了一个地图搜索我家附近的披萨,在 Chrome 的 Inspector 控制台窗口中,我:

> var list = document.getElementsByClassName('gmnoprint');
  [...] //length=37
> for ( var i = 0, item; item = list[i]; i++ ) { console.log(item.id); }
  //(11 items with no id)
  mtgt_A.1001
  mtgt_B.1001
  mtgt_C.1001
  mtgt_D.1001
  mtgt_E.1001
  mtgt_F.1001
  mtgt_G.1001
  mtgt_H.1001
  mtgt_I.1001
  mtgt_J.1001
  mtgt_A.1000
  map_overview
  //Irrelevant information...

所有可见标记的格式均为mtgt_[LETTER].1001。数字后缀似乎与多组字母标记有关(mtgt_A.1000 是一个隐藏标记 - 也许这个地方没有开放,或者其他什么。但所有相关标记都遵循该模式。所以,大概,你应该是能够通过带有$('#mtgt_[LETTER].1001') 的jQuery 访问标记 - 再次取决于您的上下文,但也许您正在寻找的是

function getMarker(letter) {
    return $('mtgt_'+letter+'.1000');
}

有点特别,但我仍然不确定你在说什么。

【讨论】:

    【解决方案2】:

    无法使其正常工作。不确定这是否可能。我确实绕过了它,因为我的标记与我想链接到它们的项目一起存储在一个数组中。所以我可以说如果第一个项目被点击,然后突出显示数组第一个项目的标记。有点粗糙,如果系统需要为一个项目提供多个标记,但它现在可以工作。如果你想知道我在说什么,就在这里:http://www.isabellevetslostpets.com/page/search-for-a-lost-pet

    搜索丢失的宠物并点击结果(遗憾的是没有人上传照片!)。结果存储在与标记信息相同的数组中(通过 AJAX 加载的 JSON 对象 - Firebug 可以查看),因此我将它们联系在一起。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-14
      • 1970-01-01
      • 2012-06-10
      相关资源
      最近更新 更多