我在向地圖添加標記羣集器功能時遇到問題。我想要的是對我的標記使用自定義圖標,每個標記都有自己的信息窗口,我希望能夠編輯。向Google地圖添加簡單標記羣集器
我做到了,但現在我添加標記羣集庫功能時遇到問題。我讀了一些關於向數組添加標記的內容,但我不確定它到底意味着什麼。此外,所有與數組相關的示例都找到了,沒有信息窗口,也沒有找到合適的方法來添加它們。
這裏是我的代碼(主要來自Geocodezip.com):
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript" src="http://google-maps-utility-library-v3.googlecode.com/svn/trunk/markerclusterer/src/markerclusterer.js"></script>
<style type="text/css">
html, body { height: 100%; }
</style>
<script type="text/javascript">
//<![CDATA[
var map = null;
function initialize() {
var myOptions = {
zoom: 8,
center: new google.maps.LatLng(43.907787,-79.359741),
mapTypeControl: true,
mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU},
navigationControl: true,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("map_canvas"),
myOptions);
var mcOptions = {gridSize: 50, maxZoom: 15};
var mc = new MarkerClusterer(map, [], mcOptions);
google.maps.event.addListener(map, 'click', function() {
infowindow.close();
});
// Add markers to the map
// Set up three markers with info windows
var point = new google.maps.LatLng(43.65654,-79.90138);
var marker1 = createMarker(point,'Abc');
var point = new google.maps.LatLng(43.91892,-78.89231);
var marker2 = createMarker(point,'Abc');
var point = new google.maps.LatLng(43.82589,-79.10040);
var marker3 = createMarker(point,'Abc');
var markerArray = new Array(marker1, marker2, marker3);
mc.addMarkers(markerArray, true);
}
var infowindow = new google.maps.InfoWindow(
{
size: new google.maps.Size(150,50)
});
function createMarker(latlng, html) {
var image = '/321.png';
var contentString = html;
var marker = new google.maps.Marker({
position: latlng,
map: map,
icon: image,
zIndex: Math.round(latlng.lat()*-100000)<<5
});
google.maps.event.addListener(marker, 'click', function() {
infowindow.setContent(contentString);
infowindow.open(map,marker);
});
}
//]]>
</script>
@ kjy112謝謝您的回答。我按照您的建議更改了我的代碼,但仍然只有3個自定義圖標可見。當我縮小時,沒有任何變化,沒有集羣圖標。我用當前的代碼更新了我的問題。 – take2 2011-03-10 15:23:38
@ take2你如何設置羣集? – kjy112 2011-03-10 15:24:13
@ kjy112我不確定你的意思。使用var mcOptions = {gridSize:50,maxZoom:15}; var mc = new MarkerClusterer(map,[],mcOptions); var markerArray = new Array(marker1,marker2,marker3); mc.addMarkers(markerArray,true); – take2 2011-03-10 15:27:58