Javascript 如何将infowindow添加到集群标记
这是我重新提出的问题 我正在通过markerclusterer.js整理一个随机的点数组来对它们进行聚类Javascript 如何将infowindow添加到集群标记,javascript,google-maps-api-3,infowindow,Javascript,Google Maps Api 3,Infowindow,这是我重新提出的问题 我正在通过markerclusterer.js整理一个随机的点数组来对它们进行聚类 for (var i = 0; i < 10; i++) { Markers[i] = new google.maps.Marker({ position: new google.maps.LatLng(45.5 + (Math.random()/200), -73.60 -(Math.random()/20)), map: map,
for (var i = 0; i < 10; i++) {
Markers[i] = new google.maps.Marker({
position: new google.maps.LatLng(45.5 + (Math.random()/200), -73.60 -(Math.random()/20)),
map: map,
title: i.toString()
});
}
var mc = new MarkerClusterer(map,Markers,mcOptions);
这只是没有“缩放”行为的原始文件的副本
编辑::测试
我已经用console.log(mc.getMarkers())进行了测试;看看标记是否被识别,它返回给我[Bi,Bi,Bi,Bi,Bi,Bi,Bi,Bi,Bi,Bi]。所以现在我的问题是,我不知道如何处理Bi
Bi是一个包含我需要的所有信息的构造函数。所以我可以用它做我想做的事
现在我需要检查如果我缩放到下一个集群并单击它。。。它又给了我10个Bi。我需要知道如何只将其中的X个管理到新集群中
更新:我现在可以打开信息窗口了。这不是个好地方,但我可以打开它
更新(晚上7:00):我有我的信息窗口工作,但我可以无限量地打开它
这是密码
google.maps.event.addDomListener(this.div_, "click", function (e) {
cMouseDownInCluster = false;
if (!cDraggingMapByCluster) {
var theBounds;
var mz;
var mc = cClusterIcon.cluster_.getMarkerClusterer();
var Mrk_cluster = mc.getMarkers();
/**
* This event is fired when a cluster marker is clicked.
* @name MarkerClusterer#click
* @param {Cluster} c The cluster that was clicked.
* @event
*/
google.maps.event.trigger(mc, "click", cClusterIcon.cluster_);
google.maps.event.trigger(mc, "clusterclick", cClusterIcon.cluster_); // deprecated name
//test infowindow
var contentString = '<div id="content">'+'<p>Test</p>' +'</div>';
var infowindow = new google.maps.InfoWindow({
content: contentString,
position: new google.maps.LatLng(Mrk_cluster[0].position.lat(),Mrk_cluster[0].position.lng())
});
infowindow.open(map);
console.log(mc.getMarkers());
// Prevent event propagation to the map:
e.cancelBubble = true;
if (e.stopPropagation) {
e.stopPropagation();
}
}
google.maps.event.addDomListener(this.div_,“click”,函数(e){
cmousedowncluster=false;
如果(!cDraggingMapByCluster){
变量界;
var-mz;
var mc=cClusterIcon.cluster_u2;.getMarkerClusterer();
var Mrk_cluster=mc.getMarkers();
/**
*单击群集标记时触发此事件。
*@name MarkerClusterer#点击
*@param{Cluster}c单击的群集。
*@事件
*/
google.maps.event.trigger(mc,“click”,cClusterIcon.cluster);
google.maps.event.trigger(mc,“clusterclick”,cClusterIcon.cluster);//不推荐使用的名称
//测试信息窗口
var contentString='+'Test'+'';
var infowindow=new google.maps.infowindow({
content:contentString,
position:new google.maps.LatLng(Mrk_cluster[0]。position.lat(),Mrk_cluster[0]。position.lng()
});
打开(地图);
log(mc.getMarkers());
//防止事件传播到映射:
e、 取消气泡=真;
如果(如停止播放){
e、 停止传播();
}
}
}));
所以我想找到一个可以阻止这种行为的触发器
google.maps.event.addDomListener(this.div_, "click", function (e) {
cMouseDownInCluster = false;
if (!cDraggingMapByCluster) {
var theBounds;
var mz;
var mc = cClusterIcon.cluster_.getMarkerClusterer();
var Mrk_cluster = mc.getMarkers();
/**
* This event is fired when a cluster marker is clicked.
* @name MarkerClusterer#click
* @param {Cluster} c The cluster that was clicked.
* @event
*/
google.maps.event.trigger(mc, "click", cClusterIcon.cluster_);
google.maps.event.trigger(mc, "clusterclick", cClusterIcon.cluster_); // deprecated name
//test infowindow
var contentString = '<div id="content">'+'<p>Test</p>' +'</div>';
var infowindow = new google.maps.InfoWindow({
content: contentString,
position: new google.maps.LatLng(Mrk_cluster[0].position.lat(),Mrk_cluster[0].position.lng())
});
infowindow.open(map);
console.log(mc.getMarkers());
// Prevent event propagation to the map:
e.cancelBubble = true;
if (e.stopPropagation) {
e.stopPropagation();
}
}