Google Maps API将数据从数组丢失到标记

时间:2014-05-14 10:01:15

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

提前道歉,因为这看起来有点复杂。

我有一个谷歌地图标记数组,我的标记被添加到名为markersArray

每个标记存储的详细信息是纬度,经度,标题,说明。

使用下面的代码,它会在我的地图上点击标记时运行

google.maps.event.addListener(marker, 'click', function(mll) {
                console.log(mll);
                console.log(markersArray);
                var html= "<div style='color:#000;background-color:#fff;padding:5px;width:150px;'><p></p></div>";
                iw = new google.maps.InfoWindow({content:html});
                iw.open(map,marker);
            });

mll显示实际标记的日志,markersArray只显示数组中的标记列表。

我注意到的是markersArray中存储的数据没有被带入实际的标记本身。

有没有办法做到这一点?

如果没有办法使用Javascript从title中找到markersArray,具体取决于您将在下图中看到的latLng值。

我截断了运行Marker Click Function时收到的内容

enter image description here

使用AngularJS添加标记如下:

$scope.createmarker = function () {
    geocoder.geocode({
        'address': selectedItem.gps
    }, function (response, status) {
        geocode_results = new Array();
        geocode_results['status'] = status;

        top_location = response[0];
        var lat = Math.round(top_location.geometry.location.lat() * 1000000) / 1000000;
        var lng = Math.round(top_location.geometry.location.lng() * 1000000) / 1000000;
        geocode_results['lat'] = lat;
        geocode_results['lng'] = lng;
        geocode_results['l_type'] = top_location.geometry.location_type;
        marker = new google.maps.Marker({
            icon: mapIcon,
            position: new google.maps.LatLng(lat, lng),
            map: map,
            title: selectedItem.title
        });
        markersArray.push(marker);

        console.log(markersArray);
        console.log(marker);
    });
};

1 个答案:

答案 0 :(得分:0)

使用title代替mll

google.maps.event.addListener(marker, 'click', function(title) {
                console.log(mll);
                console.log(markersArray);
                var html= "<div style='color:#000;background-color:#fff;padding:5px;width:150px;'><p></p></div>";
                iw = new google.maps.InfoWindow({content:html});
                iw.open(map,marker);
            });