[英]Get the Clicked marker in Google maps and send it to a function
[英]Get an onclick function on a google maps marker array
我有個問題。 我一直在尋找一種在標記上獲取onclick
函數的方法。 該標記是由Position數組組成的。 但似乎它沒有使onclick
函數起作用,如果起作用,則僅對最后創建的標記起作用。
請你能幫我嗎?
這是數組
var POIArrayVisited = new Array(
new Array(52.3764, 4.90245, "De Schreierstoren", "POIone"),
new Array(52.3727, 4.90036, "De Waag", "POItwo"),
new Array(52.3737, 4.90012, "Het Zustersklooster", "POIthree"),
new Array(52.3750, 4.89939, "Onze lieve heer op solder", "POIfour"),
new Array(52.3741, 4.89808, "Belle het standbeeld", "POIfive"));
然后創建標記:
// voer de coordinaten van de niet bezochte poi in
// zet markers voor elk POI
var i = 0;
for (i = 0; i < POIArrayVisited.length; i++) {
var markerLatlng = new google.maps.LatLng(
POIArrayVisited[i][0], POIArrayVisited[i][1])
// Place a hit marker
markerVisited = new google.maps.Marker({
position: markerLatlng,
map: map,
icon: imageMarkerOld,
title: POIArrayVisited[i][2]
});
}
然后它將創建onclick
標記。
// For every POI
var i;
for (i = 0; i < POIArrayVisited.length; i++) {
var POIlinkVisited = POIArrayVisited[i][3];
var OpenPOI = POIlinkVisited;
google.maps.event.addListener(markerVisited, "click", function() {
//link and update cookie
document.cookie = "OpenPOI" + "=" + OpenPOI;
window.location.href = "poi.php";
});
}
我不明白我在做什么
如果要使用數組並使用鏈接或ID來定義需要在其他頁面上打開的內容,則可以使用“首先獲取數組”
緯度和經度然后是要使用的標題和值的ID。
var POIArrayVisited = new Array( new Array(52.3764, 4.90245, "De Schreierstoren", "POIone"),
new Array(52.3727, 4.90036, "De Waag", "POItwo"),
new Array(52.3737, 4.90012, "Het Zustersklooster", "POIthree"),
new Array(52.3750, 4.89939, "Onze lieve heer op solder", "POIfour"),
new Array(52.3741, 4.89808, "Belle het standbeeld", "POIfive")
);
這樣,您可以使用此代碼制作Cookie
// voer de coordinaten van de niet bezochte poi in
// zet markers voor elk POI
var i=0;
for (i=0;i<POIArrayVisited.length;i++) {
var markerLatlng = new google.maps.LatLng(POIArrayVisited[i][0],POIArrayVisited[i][1])
// Place a hit marker
markerVisited = new google.maps.Marker({
position: markerLatlng,
map: map,
icon: imageMarkerOld,
title: POIArrayVisited[i][2],
html: POIArrayVisited[i][3]
});
var OpenPOIVisited = POIArrayVisited[i][3];
google.maps.event.addListener(markerVisited, "click", function() {
//link and update cookie
document.cookie = "OpenPOI"+"="+this.html;
window.location.href = "poi.php";
});
}
並與此您可以將其用作php的ID
// voer de coordinaten van de niet bezochte poi in
// zet markers voor elk POI
var i=0;
for (i=0;i<POIArrayVisited.length;i++) {
var markerLatlng = new google.maps.LatLng(POIArrayVisited[i][0],POIArrayVisited[i][1])
// Place a hit marker
markerVisited = new google.maps.Marker({
position: markerLatlng,
map: map,
icon: imageMarkerOld,
title: POIArrayVisited[i][2],
html: POIArrayVisited[i][3]
});
var OpenPOIVisited = POIArrayVisited[i][3];
google.maps.event.addListener(markerVisited, "click", function() {
//link and update cookie
window.location.href = "poi.php?id="+this.html;
});
}
還是您要引用HTML頁面
// voer de coordinaten van de niet bezochte poi in
// zet markers voor elk POI
var i=0;
for (i=0;i<POIArrayVisited.length;i++) {
var markerLatlng = new google.maps.LatLng(POIArrayVisited[i][0],POIArrayVisited[i][1])
// Place a hit marker
markerVisited = new google.maps.Marker({
position: markerLatlng,
map: map,
icon: imageMarkerOld,
title: POIArrayVisited[i][2],
html: POIArrayVisited[i][3]
});
var OpenPOIVisited = POIArrayVisited[i][3];
google.maps.event.addListener(markerVisited, "click", function() {
//link and update cookie
window.location.href = +this.html".html";
});
感謝您的幫助! = D
在您的代碼中:
// For every POI
var i;
for (i = 0; i < POIArrayVisited.length; i++) {
var POIlinkVisited = POIArrayVisited[i][3];
var OpenPOI = POIlinkVisited;
google.maps.event.addListener(markerVisited, "click", function() {
//link and update cookie
document.cookie = "OpenPOI" + "=" + OpenPOI;
window.location.href = "poi.php";
});
}
您從哪里獲得markerVisited
的新實例? 據我在您發布的代碼段中看到的,您正在循環遍歷POIArrayVisited
但是沒有獲得markerVisited
的新實例。 因此,這可能就是只有LAST標記真正對點擊做出響應的原因。
應該類似於:
for (var i = 0; i < POIArrayVisited.length; i++) {
var markerLatlng = new google.maps.LatLng(POIArrayVisited[i][0], POIArrayVisited[i][1]);
// Place a hit marker
var markerVisited = new google.maps.Marker({
position: markerLatlng,
map: map,
icon: imageMarkerOld,
title: POIArrayVisited[i][2]
});
google.maps.event.addListener(markerVisited, "click", function() {
//link and update cookie
document.cookie = "OpenPOI" + "=" + OpenPOI;
window.location.href = "poi.php";
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.