0
IM相當新的谷歌地圖API V3和我遇到了一個問題,所有信息窗口具有相同的數據,採用遍歷的標誌細節的數組的代碼IM和輸出標記加上infowindow爲每個標記。這是我的代碼:所有信息窗口具有相同的數據
<script type="text/javascript">
(function() {
google.maps.Map.prototype.markers = new Array();
google.maps.Map.prototype.addMarker = function(marker) {
this.markers[this.markers.length] = marker;
};})();
function initialize() {
var latlng = new google.maps.LatLng(37.0691, -8.0312);
var myOptions = {
zoom: 12,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
var house = 'images/house.png';
var a = new Array();
var t = new Object();
t.name = "Casa De Cova"
t.lat = 37.0691
t.lng = -8.0312
t.ico = house
t.info = 'Casa De Cova Villa'
a[0] = t;
var t = new Object();
t.name = "Casa Jaquinta"
t.lat = 37.0450
t.lng = -8.0442
t.ico = house
t.info = 'Jaquinta Villa'
a[1] = t;
var t = new Object();
t.name = "Faro Aiport"
t.lat = 37.016187
t.lng = -7.970581
t.ico = 'images/plane.png'
t.info = 'The main Airport'
a[2] = t;
for (var i = 0; i < a.length; i++)
{
var latlng = new google.maps.LatLng(a[i].lat, a[i].lng);
map.addMarker(createMarker(a[i].name,latlng,a[i].ico,a[i].info));
}
}
var counter = 1;
function createMarker(name, latlng, icon, info)
{
var marker = new google.maps.Marker({position: latlng, map: map, icon: icon, title: name});
infowindow = new google.maps.InfoWindow({
content: info
});
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map,marker);
});
document.getElementById(counter).onclick = function() {
infowindow.open(map, marker);
}
counter++;
return marker;
}
</script>
如果「變種」聲明之前所作的問題是那種固定的「infowindow.open(地圖,標記);」如果這樣做了,我可以看到每個窗口都有其各自的數據,但是當一個infowindow被打開時,前一個窗口不會關閉。
該網站是在這裏:http://www.danhall.co.uk/algarve/map.php
我有點失落,任何幫助非常感謝。
工作魅力,可以跟蹤任何地方的小功能!謝謝:)把所有的對象都推到一個數組中,並通過關閉每一個對象來循環,我不認爲我的大腦昨天完全正常工作:P – Dan 2010-09-15 06:34:26