V2는 사용되지 않으며 더 이상지도에 xml 파일의 모든 포인터를 표시하는구글 맵 XML 파일
대신 내 사이트에 대한 작동하기 때문에 나는 구글지도 API v3의 주변에 재생 된 마지막 노드를 가져옵니다 해당 페이지와 관련된 현재 마커를 표시하고 싶습니다. 이벤트에 대한 정보를 표시하고 xml 파일에서 가져온 해당 이벤트에 대한 맵을 표시하고자하는 이벤트 페이지가 있습니다.
나는 URL에 id를 지정해야하지만, URL에 id가 설정되어 있지 않으면 어떻게해야합니까?
www.mysite.com/events.php는 내 ID가 없기 때문에지도가 표시되지 않지만 www.mysite.com/events.php?id=1을 사용하면지도가 표시됩니다.
은 내가 필요한 것은 ID가 URL에 있는지 확인하는 것입니다 보여되지 않은 경우, 여기
는 구글 코드입니다 가장 최근의 것 대신으로 XML 파일과 쇼의 마지막 마커를 찾을 수 URL에있는 ID가 있는지 확인하는 추가 사항과 함께function load() {
var map = new google.maps.Map(document.getElementById("map"), {
center: new google.maps.LatLng(50.618438, -3.420304),
zoom: 13,
mapTypeId: 'roadmap'
});
var infoWindow = new google.maps.InfoWindow;
// Change this depending on the name of your PHP file
downloadUrl("results.xml", function(data) {
var xml = data.responseXML;
var the_id = gup('id');
var markers = xml.documentElement.getElementsByTagName("marker");
var last = markers.length-1;
for (var i = 0; i < markers.length; i++) {
if (markers[i].hasAttribute('id')) {
//if there is, test its value
if (markers[i].getAttribute('id') == the_id) {
var name = markers[i].getAttribute("name");
var address = markers[i].getAttribute("address");
var type = markers[i].getAttribute("type");
var point = new google.maps.LatLng(
parseFloat(markers[i].getAttribute("lat")),
parseFloat(markers[i].getAttribute("lng")));
var html = "<b>" + name + "</b> <br/>" + address;
var icon = customIcons[type] || {};
var marker = new google.maps.Marker({
map: map,
position: point,
icon: icon.icon,
shadow: icon.shadow
});
bindInfoWindow(marker, map, infoWindow, html);
}
else {
var name = markers[last].getAttribute("name");
var address = markers[last].getAttribute("address");
var type = markers[last].getAttribute("type");
var point = new google.maps.LatLng(
parseFloat(markers[last].getAttribute("lat")),
parseFloat(markers[last].getAttribute("lng")));
var html = "<b>" + name + "</b> <br/>" + address;
var icon = customIcons[type] || {};
var marker = new google.maps.Marker({
map: map,
position: point,
icon: icon.icon,
shadow: icon.shadow
});
bindInfoWindow(marker, map, infoWindow, html);
}
}
}
});
}
나는 t는 지난 XML 마커로에 대한 루프의 I를 교체해야하지만
를 작동하지 않고 여기
function gup(name) {
name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
var regexS = "[\\?&]"+name+"=([^&#]*)";
var regex = new RegExp(regexS);
var results = regex.exec(window.location.href);
if(results == null)
return "";
else
return results[1];
}
은 내가 확인할 필요가 있다고 생각 URL에서 ID를 가져옵니다 기능입니다 id가 존재하지 않으면, 마지막 마커를 얻는다.
마지막 마커의 ID는 'markerers [markers.length-1] .getAttribute ('id ')'입니다.하지만 질문은 될 수 없습니까? – Tomalak
당신이 의미하는 바를 안다고 생각하지만 10 개의 마커가 있다고 말하면서 다른 마커 뒤에 마커를 가져야합니다. 따라서 마커가 있어야합니다. [9] obvisously -1로 – AdRock
마커가 10 개이면 'markerers.length '는 10이됩니다. 이것은 -1을 사용하여 마지막 것을 검색해야 함을 의미합니다. – Tomalak