API からの位置情報を使用して、マップ上に Google マップ マーカーをいくつか配置しようとしています。すべてのJSONデータをカウントし、「ドライバー名、ドライバーの緯度、ドライバーの経度」を配列に入れるforループを作成しようとしました。次に、この配列は、Google マップがこれらの場所を地図上にピン留めするのに役立ちます。以下のコード例:
setTimeout(function () {
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 10,
center: new google.maps.LatLng(62.457171, 17.350953),
mapTypeId: google.maps.MapTypeId.ROADMAP
});
var infowindow = new google.maps.InfoWindow();
var marker, i;
var url = "http://blackcab.didair.se/api/drivers";
var name;
var lat;
var lon;
var locations;
$.getJSON(url,
function (response) {
name = response.drivers[n].name;
lat = response.drivers[n].currentLat;
lon = response.drivers[n].currentLon;
for (var n = 0; n < response.drivers.length; n++)
var locations = [
[name, lat, lon, n], ];
for (i = 0; i < locations.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[i][1], locations[i][2]),
map: map
});
google.maps.event.addListener(marker, 'click', (function (marker, i) {
return function () {
infowindow.setContent(locations[i][0]);
infowindow.open(map, marker);
}
})(marker, i));
});
}, 3000);
このコードは、常にこれらの位置をリロードする必要があるため、間隔内にあります。Google Chrome Web 開発者ツールで発生したエラーを調べましたが、さらにエラーが発生しました。これに対する簡単な解決策はありますか?まさに「くるみ割り人形」。
前もって感謝します!
ジャック