![](/img/trans.png)
[英]Google maps javascript - Marker array, how do I get the lat/lon?
[英]How do I properly format this JavaScript Array/Object for Google Maps?
在構造來自AJAX請求的數據方面,Google Maps API遇到了麻煩。 這是我目前所在的位置:
const getMarkerData = function ( googlemap, $hook ) {
const hData = $hook.dataset;
const format = "json";
const dataType = "json";
const markerData = [];
let item = null;
core.api.collection( hData.url, format, dataType ).done(( response ) => {
const items = response.items;
if ( response.items ) {
let i = items.length;
for ( i; i--; ) {
item = items[ i ];
markerData.push({
position: new google.maps.LatLng(item.location.mapLat, item.location.mapLng),
title: item.location.addressTitle
});
}
}
const googleMapMarkers = new google.maps.Marker( markerData );
googleMapMarkers.setMap( googlemap );
});
};
據我了解,Google Maps希望使用JSON而不是數組形式的數據。 我要如何調整才能達到目標?
新修訂的工作代碼:
core.api.collection( hData.url, format, dataType ).done(( response ) => {
const items = response.items;
if ( response.items ) {
let i = items.length;
for ( i; i--; ) {
item = items[ i ];
marker = new google.maps.Marker({
position: new google.maps.LatLng(item.location.mapLat, item.location.mapLng),
title: item.location.addressTitle,
map: googleMap
});
googleMapMarkers.push(marker);
}
}
});
您正在嘗試將單個標記視為標記數組。
const googleMapMarkers = new google.maps.Marker( markerData );
這行不通。
為什么不遍歷項目創建一個google.maps.Marker
實例並將其保存到數組中。 您還可以在該迭代中設置每個地圖。
var googleMapMarkers = [];
for ( i; i--; ) {
item = items[ i ];
markerData.push({
position: new google.maps.LatLng(item.location.mapLat, item.location.mapLng),
title: item.location.addressTitle
});
markerData.setMap(googleMap);
googleMapMarkers.push(markerData);
}
這是假設markerData是有效的Google Map標記。 如果不是,您可能需要更多的代碼來構造該對象,但是它很容易實現,並且在API參考中提供了很多示例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.