簡體   English   中英

如何正確格式化Google Maps的JavaScript數組/對象?

[英]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.

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