Google地图API在infowindow中显示标记位置

时间:2015-10-21 14:45:22

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

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

    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);
                                  });

2 个答案:

答案 0 :(得分:1)

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

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

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

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

答案 1 :(得分:0)

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

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