Javascript 谷歌地图API v3-我可以从Marker获取内容吗?
我创建了很多标记,但我认为在获得用于平均和设置信息窗口的内容后,单击内部是markerCluster上所有标记的平均值 每个标记都必须给他一个值。快照Javascript 谷歌地图API v3-我可以从Marker获取内容吗?,javascript,google-maps-api-3,google-maps-markers,markerclusterer,Javascript,Google Maps Api 3,Google Maps Markers,Markerclusterer,我创建了很多标记,但我认为在获得用于平均和设置信息窗口的内容后,单击内部是markerCluster上所有标记的平均值 每个标记都必须给他一个值。快照 我想抓取所有标记和平均值,并显示在信息窗口中。快照: 这是我的密码: var locations = [ ['100', 22.75853,121.14886, 1], ['90', 22.7586,121.14891, 2], ['80', 22.75857,121.1488, 3], ['70', 22.75844,121.148
我想抓取所有标记和平均值,并显示在信息窗口中。快照: 这是我的密码:
var locations = [
['100', 22.75853,121.14886, 1],
['90', 22.7586,121.14891, 2],
['80', 22.75857,121.1488, 3],
['70', 22.75844,121.14887, 4],
['60', 25.08389,121.57796, 5],
['50', 22.75839,121.14891, 6],
['40', 22.75831,121.14912, 7],
['30', 22.75838,121.14904, 8],
['20', 22.75856,121.14867, 9],
['10', 25.08229,121.57822, 10]];
var mapOptions = {
center: new google.maps.LatLng(25.048215, 121.517123),
zoom: 7
};
var map = new google.maps.Map(document.getElementById('map- canvas'),mapOptions);
var infowindow = new google.maps.InfoWindow;
var markers=[];
for (var i = 0; i < locations.length; i++) {
var latLng = new google.maps.LatLng(locations[i][1], locations[i][2]);
var marker = new google.maps.Marker({ position: latLng });
markers.push(marker);
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent(locations[i][0]);
infowindow.open(map, marker);
}
})(marker, i));
}
var clusterOptions = { zoomOnClick: false };
var markerCluster = new MarkerClusterer(map, markers,clusterOptions);
google.maps.event.addListener(markerCluster, 'clusterclick', function(cluster) {
var content = '';
var info = new google.maps.MVCObject;
info.set('position', cluster.center_);
var allmarke = cluster.getMarkers();
var titles = "";
for(var i = 0; i < allmarke.length; i++) {
titles = "put avage in here";
}
infowindow.close();
infowindow.setContent(titles);
infowindow.open(map, info);
});
var位置=[
['100', 22.75853,121.14886, 1],
['90', 22.7586,121.14891, 2],
['80', 22.75857,121.1488, 3],
['70', 22.75844,121.14887, 4],
['60', 25.08389,121.57796, 5],
['50', 22.75839,121.14891, 6],
['40', 22.75831,121.14912, 7],
['30', 22.75838,121.14904, 8],
['20', 22.75856,121.14867, 9],
['10', 25.08229,121.57822, 10]];
变量映射选项={
中心:新google.maps.LatLng(25.048215121.517123),
缩放:7
};
var map=new google.maps.map(document.getElementById('map-canvas'),mapOptions);
var infowindow=new google.maps.infowindow;
var标记=[];
对于(var i=0;i
您的代码是什么样子的?将其添加到question@duncan我添加我的代码!天哪!谢谢你,这对我帮助很大!非常感谢你。编辑我的问题并回答我的问题!;)这晚了一年左右,但平均数计算错了。。它们应该是(total/(allmarke.length))
,而不是(total/(allmarke.length-1))
。修正错误永远不会太迟。更新了fiddle链接(在评论中没有注意到您的链接)和代码段。谢谢
for (var i = 0; i < locations.length; i++) {
var latLng = new google.maps.LatLng(locations[i][1], locations[i][2]);
var marker = new google.maps.Marker({
position: latLng,
_myValue: locations[i][0] // <-- custom property
});
markers.push(marker);
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent(locations[i][0]);
infowindow.open(map, marker);
}
})(marker, i));
}
var total = 0;
for (var i = 0; i < allmarke.length; i++) {
total += parseFloat(allmarke[i]._myValue);
}
titles = "avg " + (total / (allmarke.length)).toFixed(2);
infowindow.close();
infowindow.setContent(titles);
infowindow.open(map, info);