簡體   English   中英

Javascript-Google Maps v3-獲取標記的位置

[英]Javascript - Google Maps v3 - Get positions of markers

感謝這個網站和您的幫助,我幾乎完成了Googlemaps腳本。 還有一件事,我需要您的幫助:

我的地圖上有多個標記。

我想要:

-將每個標記位置保存在變量中
-在地圖下方制作鏈接到標記的外部鏈接
單擊這些鏈接,更改mapcenter(如上所述)

到目前為止,這是我的腳本:

   <script type="text/javascript">
    var offender_locations = [
        ["10001", "Title 2", "icon.png"],
        ["10002", "Title 3", "icon.png"],
        ["10010", "home", "icon.png"]
    ];

    var myOptions = {
        zoom: 12,
        center: latlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var map = new google.maps.Map(document.getElementById("results_map"), myOptions);
    var latlng = new google.maps.LatLng(0, 0);

    for (i = 0; i < offender_locations.length; i++) {
        var infowindow = new google.maps.InfoWindow(),
            geocoder_map = new google.maps.Geocoder(),
            address = offender_locations[i][0],
            icon_img = offender_locations[i][2];
        (function(addr, img, i) {
            geocoder_map.geocode({
                'address': addr
            }, function(results, status) {
                if (status == google.maps.GeocoderStatus.OK) {
                    map.setCenter(results[0].geometry.location);
                    var marker = new google.maps.Marker({
                        map: map,
                        position: map.getCenter(),
                        icon: img
                    });
                    google.maps.event.addListener(marker, 'click', (function(marker, i) {
                        return function() {
                            infowindow.setContent(offender_locations[i][1]);
                            infowindow.open(map, marker);
                        }
                    })(marker, i));

                } else {
                    alert("error!");
                }
            });
        }(address, icon_img, i));
    }

    function zoomin() {
        map.setZoom(15);
    };

    function zoomout() {
        map.setZoom(15);
    }
</script>

最后兩個小功能用於單擊外部鏈接。 目前,它們僅更改縮放級別,而不會更改地圖中心。

嘗試將標記推到數組中,以便以后查看。

一開始要做var markers = [];

然后在每個標記聲明之后markers.push(marker);

您還可以使用object存儲標記或其他圖層,以備日后通過主鍵訪問它們時使用:

var markers = {};

markers['car_1'] = marker;

//change the position of 'car_1'
markers['car_1'].setPosition(x,y);

//you also can create much more complex structure like this
marker['car_2'] = {'title': 'Car 1', _ref: marker};

//change the position of 'car_2'
markers['car_2']._ref.setPosition(x,y);

注意:確保您的對象鍵(在本例中為car_1,car_2)不同(主鍵)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM