我是谷歌地图和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>
............................................
答案 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