我是谷歌地图的新手,所以请原谅这是一个愚蠢的问题.
我正在尝试将标记群集选项与Google地图一起使用
这是我的代码
var map;
var global_markers = [];
var markers = [
[37.09024, -95.712891, 'trialhead0'],
[37.09024, -95.712891, 'trialhead1'],
[37.09024, -95.712892, 'trialhead2']
];
var infowindow = new google.maps.InfoWindow({});
function initialize() {
geocoder = new google.maps.Geocoder();
var latlng = new google.maps.LatLng(40.77627, -73.910965);
var myOptions = {
zoom: 1,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
addMarker();
}
function addMarker() {
for (var i = 0; i < markers.length; i++) {
// obtain the attribues of each marker
var lat = parseFloat(markers[i][0]);
var lng = parseFloat(markers[i][1]);
var trailhead_name = markers[i][2];
var myLatlng = new google.maps.LatLng(lat, lng);
var contentString = "<html><body><div><p><h2>" + trailhead_name + "</h2></p></div></body></html>";
var marker = new google.maps.Marker({
position: myLatlng,
map: map,
title: "Coordinates: " + lat + " , " + lng + " | Trailhead name: " + trailhead_name
});
marker['infowindow'] = contentString;
global_markers[i] = marker;
global_markers.push(marker);
google.maps.event.addListener(global_markers[i], 'click', function() {
infowindow.setContent(this['infowindow']);
infowindow.open(map, this);
});
}
}
var markerCluster = new MarkerClusterer(map, global_markers);
window.onload = initialize;
Run Code Online (Sandbox Code Playgroud)
当我运行此代码时,我在浏览器控制台下获得以下异常
未捕获的TypeError:无法读取未定义的属性'getZoom'
这是我的小提琴
http://jsfiddle.net/ZLuTg/1023/
怎么解决这个?
map
只实例化在窗口onload处理,但它传递给MarkerCluster
构造函数的参数之前它.这就是它未定义的原因.
确保MarkerCluster
在之后构建map
.
http://jsfiddle.net/ZLuTg/1025/
归档时间: |
|
查看次数: |
4732 次 |
最近记录: |