HTML / JS - Google Maps v3 - 从外部链接按ID选择/删除标记

时间:2016-09-08 02:34:54

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

我是谷歌地图和javascript的新手。我正尝试使用外部链接/列表与地图进行互动。

我的主要问题是我无法在地图上选择带有ID的标记。

我不想将所有标记放在列表/数组中并迭代它们,因为我不知道在任何时候会有多少标记。

我只是想通过他们的id选择它们并与它们一起工作,比如打开infowindow,删除它们等等......

在我的changeIcon()函数中,我尝试了一些方法,但到目前为止都没有。

<html>

....

<div id="mapview"></div>

<a class="test-link" onmouseover="changeIcon()">Link</a>

<script>

function changeIcon()
    {
        //marker = map.selectMarker("4");
        //marker = markers[4];
        //infowindow.open(map,marker);

        //$("#mapview").map.removeMarker(4);
    }

var map = new google.maps.Map(document.getElementById('mapview'), 
        {
            center: {lat: 44.540, lng: -78.546},
            zoom: 16
        });

function initMap() 
{
  var marker = new google.maps.Marker({
          position: userPosition,
          map: map,
          id: 4
        });
}

</script>

</html>

............................................

1 个答案:

答案 0 :(得分:-1)

没有API可以从地图中获取标记。参考: &#34; https://developers.google.com/maps/documentation/javascript/reference&#34;

我认为你不想使用数组,因为id永远不会匹配索引。所以我建议使用字典:

var theArray = [1,2,3,[4,5,6,7,],9,10] //I want this array become [1,2,3,4,5,6,7,8,9,10]

//when I try to do so it have error, below is my code
 //Test.isArray is a function I check is it an array

var i, j;
var IdLog =[]
for (j = 0; j < theArray.length; ++j) {
   if (!Test.isArray(tempID[j])) {
       IdLog.push(thArray[j]);
       console.log(IdLog);
        } else {
        for (k = 0; theArray[j].length; ++k) {
           IdLog.push(theArray[j][k]);
            console.log(IdLog);
        }
     }
  }

创建标记时,将其添加到字典中:

var markers = {};  // "{}" to specify dictionary instead of "[]" to specify array

当你想要它时:

markers[4] = marker;   // 4 is the id