簡體   English   中英

Google地圖和多個標記

[英]Google Maps and Multiple Markers

這是我的代碼。 問題出在地圖上,但沒有標記放置在地圖上。 latlongARR是一個看起來像這樣的數組

[{“ name”:“ McChord Field DGC”,“ lat”:“ 47.128257”,“ long”:“-122.488847”},{“ name”:“ Ambient DGC”,“ lat”:“ 47.184732”,“ long “:”-122.509232“},{” name“:” Riverside Disc Golf Park“,” lat“:” 47.185683“,” long“:”-122.212600“},{” name“:” East Tacoma DGC“,” lat“:” 47.227344“,” long“:”-122.398491“},{” name“:” White River“,” lat“:” 47.278501“,” long“:”-122.197390“}”

看來一切都應該工作?? 有明顯的錯誤嗎?

                var mapOptions = {
                    zoom:10,
                    center: currentLocation,
                    mapTypeId: google.maps.MapTypeId.ROADMAP
                    };
                var map = new google.maps.Map(document.getElementById('dgmap'), mapOptions);
                var infowindow = null;

                var infowindow = new google.maps.InfoWindow({content: 'loading...'}); 

                var marker, i;

                for(i=0; i < latlongARR.length; i++){
                    var markers;
                    marker = new google.maps.Marker({
                        position: new google.maps.LatLng(latlongARR[i][1], latlongARR[i][2]),
                        map:map
                        });
                        console.log(latlongARR[i][0]);
                    google.maps.event.addListener(marker, 'click', (function(marker, i){
                        return function(){
                            infowindow.setContent(latlongARR[i][0]);
                            infowindow.open(map, marker);
                        }
                        })(marker,i));
                    };

                }
position: new google.maps.LatLng(latlongARR[i][1], latlongARR[i][2]),

latlongARR[i]是一個對象,您需要使用屬性名稱而不是數字索引來獲取值,上面的代碼應為:

position: new google.maps.LatLng(latlongARR[i].lat, latlongARR[i].long),

要么

position: new google.maps.LatLng(latlongARR[i]['lat'], latlongARR[i]['long']),

以下同樣的問題:

infowindow.setContent(latlongARR[i][0]);

這應該是infowindow.setContent(latlongARR[i].name);

您應該使用調試器。 第一件事是這樣的:

                   marker = new google.maps.Marker({
                    position: new google.maps.LatLng(latlongARR[i][1], latlongARR[i][2]),
                    map:map
                    });

latlongARR[i][1]latlongARR[i][2]未定義,它們應該是latlongARR[i].latlatlongARR[i].long

暫無
暫無

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

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