나는 아래의 Google지도 코드를 사용하여 PHP로 동적으로 생성 된 XML 파일에서 여러 주소의 마커를 검색하고 플로팅합니다. 코드는 해당 마커에 대한 Google지도 정보 창에 올바른 정보를 표시하는 것 외에는 필요한 모든 작업을 수행합니다. 모든 마커에 대한 마지막 XML 항목/목록 정보를 얻습니다.Google지도 정보 창 xml을 통한 복수 주소
나는 그것을 사용하기 위해 다양한 변형을 시도해 왔지만 운이 없다.
샘플 XML 데이터
<?xml version="1.0" encoding="UTF-8"?>
<listings>
<listing>
<address>123 Street</address>
<city>MANOTICK</city>
</listing>
<listing>
<address>456 Street</address>
<city>MANOTICK</city>
</listing>
<listing>
<address>111 Avenue</address>
<city>MANOTICK</city>
</listing>
<listing>
<address>777 Avenue</address>
<city>Ottawa</city>
</listing>
<listing>
<address>333 Street</address>
<city>Manotick</city>
</listing>
</listings>
구글 맵 코드
function initialize()
{
var myLatLng = new google.maps.LatLng(45.2340684, -75.6287287);
var myOptions =
{
zoom: 10,
mapTypeControl: true,
center: myLatLng,
zoomControl: true,
zoomControlOptions:
{
style: google.maps.ZoomControlStyle.SMALL
},
StreetViewControl: false,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(document.getElementById('google_map'), myOptions);
var info_window = new google.maps.InfoWindow;
google.maps.event.addListener
(map, 'click',
function()
{
info_window.close();
});
downloadUrl
('listings.xml',
function (listings_data)
{
var markers = listings_data.documentElement.getElementsByTagName('listing');
var geocoder = new google.maps.Geocoder();
for (var i = 0; i < markers.length; i++)
{
var address = markers[i].getElementsByTagName('address')[0].firstChild.data;
var city = markers[i].getElementsByTagName('city')[0].firstChild.data;
var address_google_map = address + ', ' + city + ', ON';
var info_text = address + '<br />' + city + ' ON';
geocoder.geocode
({'address': address_google_map},
function (results)
{
var marker = new google.maps.Marker
({
map: map,
position: results[0].geometry.location
});
google.maps.event.addListener
(marker, 'click',
function()
{
info_window.setContent(info_text);
info_window.open(map, marker);
});
});
}
});
}
감사합니다. 나는 그것을 작동 시켰지만, 나는 방금 플로팅 된 마커를 바탕으로지도를 중앙에 놓는 것이 가장 좋은 방법이라고 생각했다. 나는 for 루프와'bounds.extend (results [0] .geometry) 바로 뒤에 'CreatesMarker 함수에서'bounds = new google.maps.LatLngBounds();'와'map.fitBounds (bounds) .location);'CreateMarker 함수를 호출 한 후. 댓글에 대한 죄송합니다. 회신을 게시하거나 후속 조치를 취하는 방법을 모르겠습니다. 더 많은 정보 나 질문은 물론 다른 사람들이 사용할 수있게 완성 된 코드도 있습니다. – spiderling
내가 추가 한 작업 샘플을보십시오. 그것은 마커를 중심으로합니다. 후속 작업까지는 질문을 편집 할 수 있습니다 (경계가 맞는 것은 실제로 또 다른 질문입니다 ...) – geocodezip
모든 도움과 실제 사례에 감사드립니다! 잘 작동하고 있습니다. 그것이 큰 문제는 아니지만 xmlParse 함수를 사용할 수는 없습니다. – spiderling