【问题标题】:Adding an ID to Google Map Marker then targeting it [duplicate]将 ID 添加到 Google Map Marker 然后定位它[重复]
【发布时间】:2013-08-10 08:16:13
【问题描述】:

我已经使用 Google Maps API v3 创建了一个谷歌地图,并添加了一个自定义标记,我已经向 Marker 构造函数添加了一个 ID,我希望使用 jQuery 以其他 JS 为目标,但是当我只需尝试类似 $( '#'+marker.id ).hide();什么都没发生?

谁能告诉我如何正确访问此标记 ID?

我的maker代码如下:

marker = new google.maps.Marker({
            externalURL: 'http://www.google.com',
            position: defaults.center,
            map: map,
            icon: markerImg,
            id: 'marker'
        });

然后我使用以下代码创建一个 jQuery 对象来定位:

var mapMarker = $( '#'+marker.id );
    mapMarker.hide();

【问题讨论】:

  • 有什么错误吗?检查您的控制台。
  • 没有没有错误,只是好像没有注册id
  • @Jorge 我仍然无法使用您的答案定位 id?
  • 您将无法使用 jQuery "$" 选择器访问它。您需要遍历所有标记的数组(它们是 google.maps.Marker 对象)以查找具有该 ID 的标记。
  • 嘿,你能给我举个例子吗?我在地图上只会有一个标记,我基本上希望能够在地图出现时向#marker 添加一类is-active?

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


【解决方案1】:

使用

创建标记后
var myMarker = new google.maps.Marker({
                   externalURL: 'http://www.google.com',
                   position: defaults.center,
                   map: map,
                   icon: markerImg,
                   id: 'marker'
               });

要将其从地图中删除,请使用:

myMarker.setMap(null);

要从视图中隐藏标记标记,请使用:

myMarker.setVisible(false);

如果您需要稍后访问大量标记,请考虑:

var allMyMarkers = [];
allMyMarkers.push( myMarker );

要访问特定的 id,请考虑:

for(var i=0;i<allMyMarkers.length;i++){
    if(allMyMarkers[i].id === "marker"){
        allMyMarker[i].setMap(null);
        break;
    }
}

【讨论】:

  • 理想情况下,我想在地图进入视野时向#marker 添加一个类,以便将其从 0 到 100% 宽度进行动画处理,这可能吗?
【解决方案2】:

如果您只想隐藏标记,请使用:

marker.setMap(null);

这对你的问题有解决方案吗?

【讨论】:

  • 这并不能回答问题,但当有人只想隐藏它时,这是一个很好的建议。
猜你喜欢
  • 2020-03-07
  • 2023-01-22
  • 2013-10-15
  • 2017-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-31
  • 2018-07-13
相关资源
最近更新 更多