关于javascript:Google地图API在infowindow中显示标记位置

Google map API displaying marker location in an infowindow

我有一个javascript数组的位置(jarray),我正在循环并将每个位置的标记添加到谷歌地图上。 除了这些标记,我还想添加一个显示标记位置的信息窗口。 下面的代码在每个标记的infowindows中显示相同的纬度和经度位置。 我希望每个标记在其infowindow中都有自己的地址。 我也尝试将infowindow的内容设置为结果[0] .geometry.location,address和jarray [i]都没有成功。 任何想法都非常感谢。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    for(var i = 0; i < jarray.length; i++){
                            geocoder.geocode({'address': jarray[i]},
                            function(results, status) {
                              if (status == google.maps.GeocoderStatus.OK) {
                                if (status != google.maps.GeocoderStatus.ZERO_RESULTS) {

                                  var marker = new google.maps.Marker({
                                    position: results[0].geometry.location,
                                    map: map,
                                    title:"Marker",
                                    icon: image
                                  });

                                  var infowindow = new google.maps.InfoWindow({
                                    content:"<p>
"
+marker.position+"
</p>"

                                  });

                                  marker.addListener('mouseover', function() {
                                    infowindow.open(map, marker);
                                  });


我不认为谷歌地图api标记有位置属性 - 你可以使用位置 - 方法是marker.getPosition()

https://developers.google.com/maps/documentation/javascript/reference?hl=en#Marker

然后,您可以通过使用地理编码将该位置用于地址(如果需要)

https://developers.google.com/maps/documentation/geocoding/intro


注入marker.location,使用jarray位置本身。 您可以调整此代码以适合您,因为我不知道您的jarray的内容。

1
2
3
4
 var infowindow = new google.maps.InfoWindow({
   infowindow.setContent(jarray[i]['lat'] +"" + jarray[i]['lat']);
   infowindow.open(map, marker);
                                  });