내 last.fm/google 이벤트 매핑 매시업의 일부로 last.fm API에서 동적으로 마커를 Google지도에 플롯해야합니다.Google Map Infowindow Closure?
이것은 모두 좋지만 마커를 클릭하면 마지막 정보창 (한 개의 공연) 만 표시됩니다. 나는 이것에 대한 추론을 알고 있지만 그것을 구현하려는 투쟁을 알고있다.
현재 모든 역동적 인 공연의 위치 (좌표)를 통해 PHP 루프를 실행하고 자바 스크립트로 전달합니다. 이것은 나에게 많은 의미가 있습니다 - 그리고 PHP의 내 지식은 JS보다 훨씬 더이 유일한 중 하나입니다하지 않는 한
<?php
foreach ($gigs->events->event as $js_event) {
$lat = $js_event->venue->location->children("geo",true)->point->children("geo",true)->lat;
$long = $js_event->venue->location->children("geo",true)->point->children("geo",true)->long;
$coords = "$lat,$long";
?>
var image = new google.maps.MarkerImage('http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=G|00CC99|000000',
new google.maps.Size(40, 32),
// The origin for this image is 0,0.
new google.maps.Point(0,0),
// The anchor for this image is the base of the flagpole at 0,32.
new google.maps.Point(0, 32));
var marker = new google.maps.Marker({
position: new google.maps.LatLng(<?php echo $coords ?>),
map: map,
icon:image,
title: '<?php echo str_replace('\'','',$js_event->title) ." at ". str_replace('\'','',$js_event->venue->name) ?>'
});
var contentString = '<?php echo str_replace('\'','',$js_event->title) ." at ". str_replace('\'','',$js_event->venue->name)?>'
var infowindow = new google.maps.InfoWindow({
content: contentString
});
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map,marker);
});
<? } ?>
이 어떻게 완전히 등 JS가 아니라 PHP,로 루프를 리팩토링하지 않고 폐쇄를 추가 할 수 있습니다 솔루션?
많은 분들께 감사드립니다.
고맙습니다. – cee
환상적이며 작동합니다! 많은 감사 – cee