0
我有一個簡單的Google地圖專長,我正在嘗試並未能完成。似乎無法在Google地圖上獲得標記點擊次數
目前,我可以顯示我的地圖,然後通過PHP(我使用ExpressionEngine)循環瀏覽項目列表,並將每個項目的緯度/經度添加到JavaScript數組中。
一旦這些值在JavaScript數組中,我就使用jQuery循環遍歷每個數組,並向地圖添加一個標記。
我可以點擊地圖並使其正確響應;但是,當我嘗試點擊其中一個標記時,根本沒有任何反應。
我嘗試過移動代碼,重命名,更改,編輯和調整無盡......我無法弄清楚這一點。任何幫助都將非常感激。我的代碼如下:
<script>
// Create the new map_locations array
var map_locations = [];
</script>
<!-- The following ExpressionEngine script loops through all the 'projects' on the site,
then pushes each project to the map_locations array. -->
{exp:channel:entries channel="projects"}
<script>
map_locations.push(['{url_title}', '{project_latitude}', '{project_longitude}', '{categories}{category_name}{/categories}', '{title}']);
</script>
{/exp:channel:entries}
<script>
var marker;
function initialize() {
// To add the marker to the map, use the 'map' property
var mapOptions = {
center: { lat: 51.884 , lng: -95.147 },
zoom: 4
};
var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
// Create a new location lat/long var, newLatLng
var newLatLng;
var contentString = "<div id='info_window'>this is the info window</div>"
var infowindow = new google.maps.InfoWindow({
content: contentString
});
var iconBase = '/images/map_icon_';
$.each(map_locations, function()
{
newLatLng = new google.maps.LatLng(this[1] , this[2]);
marker = new google.maps.Marker({
position: newLatLng,
map: map,
title: this[4],
icon: iconBase + this[3]
});
});
google.maps.event.addListener(marker, 'click', function() {
console.log("This marker's url_title is: " + this[0]);
});
google.maps.event.addListener(map, 'click', function() {
console.log("Testing map click");
});
}
// Initialize the map
google.maps.event.addDomListener(window, 'load', initialize);
</script>
謝謝charlietfl! 我不得不作出一個更正:我將marker.title更改爲this.title。以前,marker.title返回「This marker的url_title是:undefined」,但現在它返回了預期的數據。 非常感謝您的幫助!你只是讓我的一週! – Chris
我沒有看文檔,我認爲回調的第一個參數是標記...我的壞 – charlietfl