Google maps 谷歌地图中的markerWithLabel使信息窗口显示在远离markerClick的地方
我将markerWithLabel.js用于我的自定义标记,当我单击标记时,信息窗口显示在离标记位置稍远的地方 这是我的代码标记代码:Google maps 谷歌地图中的markerWithLabel使信息窗口显示在远离markerClick的地方,google-maps,marker,infowindow,Google Maps,Marker,Infowindow,我将markerWithLabel.js用于我的自定义标记,当我单击标记时,信息窗口显示在离标记位置稍远的地方 这是我的代码标记代码: var t = this; var m = new MarkerWithLabel({ position: latlng, draggable: true, raiseOnDrag: true, icon: ' ', map: t.map.map, labelC
var t = this;
var m = new MarkerWithLabel({
position: latlng,
draggable: true,
raiseOnDrag: true,
icon: ' ',
map: t.map.map,
labelContent: '<i class="fa fa-circle fa-2x" style="color:#8dc73f;height:22px;width:22px;"></i><i class="fa fa-arrow-up fa-stack-1x fa-inverse" style="transform: rotateZ(9deg);margin-top: 5px;"></i><i style="position:relative;margin-left:-19px;" class="fa fa-circle-o fa-2x"></i>',
labelAnchor: new google.maps.Point(30, 0),
labelClass: "labels", // the CSS class for the label
labelStyle: { opacity: 0.75 }
})
这有什么问题吗?即使我为简单的自定义标记做了与我在markerWithLabel js中遇到的问题相同的事情,您实际上没有标记标记的图标
icon: ' ',
因此,当使用以下各项时,API将无法计算正确的像素偏移量
:
infowindow.open(map, this);
改为设置信息窗口的位置,并使用的单参数版本
代码片段:
var globalMarker=[];
var映射;
函数初始化(){
var center=newgoogle.maps.LatLng(45.4214,-75.6919);
map=new google.maps.map(document.getElementById('map'){
缩放:10,
中心:中心,,
禁用双击缩放:真,
mapTypeId:google.maps.mapTypeId.ROADMAP
});
var标记=[];
var infowindow=new google.maps.infowindow();
对于(i=0;i<50;i++){
var latLng=new google.maps.latLng(center.lat()+Math.random()-0.5,center.lng()+Math.random()-0.5);
//var latLng=new google.maps.latLng(45.4214,-75.6919)
标记=新标记WithLabel({
位置:latLng,
真的,
是的,
地图:地图,
图标:“”,
标签内容:“”,
labelAnchor:新的google.maps.Point(45,0),
labelClass:“labels”,//标签的CSS类
标签样式:{
不透明度:0.75
}
});
标记器。推(标记器);
makeDiv(i,15,“Marker#”);
google.maps.event.addListener(标记[i],'click',函数(e){
infowindow.setContent('Marker position:'+this.getPosition());
infowindow.setPosition(this.getPosition());
打开(地图);
});
}
变量clusterOptions={
zoomOnClick:错误
}
var markerCluster=新的MarkerClusterer(地图、标记、聚类选项);
globalMarker=markers.slice();
google.maps.event.addListener(markerCluster,'clusterclick',函数(cluster){
var内容=“”;
//将lat/long从集群对象转换为可用的MVCObject
var info=new google.maps.MVCObject;
信息集('position',cluster.center_);
//----
//获取标记
var markers=cluster.getMarkers();
var=”;
//得到所有的头衔
对于(var i=0;i
html,
身体,
#地图{
保证金:0;
填充:0;
身高:100%
}
.标签{
颜色:红色;
背景色:白色;
字体系列:“Lucida Grande”,“Arial”,无衬线;
字体大小:10px;
字体大小:粗体;
文本对齐:居中;
宽度:90px;
边框:2件纯黑;
空白:nowrap;
}
请提供一份说明问题的说明,包括图标图像的副本。请检查这里,我在labelContent中添加了一些文本()和图标。即使单击该文本,infoowindow也会显示在标记位置。我只想当我点击fontawesome图标时,信息窗口才会显示出来。如果我点击文本内容,我不想显示信息窗口。这是一个不同的问题(这个问题中没有图标),请对此进行指导。如果我的回答解决了您原来的问题,请,然后问a。谢谢您,因为您的回答很好,我接受了您的回答jsfiddle.net/jsfiddleauto/zphbt36L/5我在labelContent中添加了一些文本()和图标。即使单击该文本,infoowindow也会显示在标记位置。我只想当我点击fontawesome图标时,信息窗口才会显示出来。如果我点击文本内容,我不想显示信息窗口。我面临的这个问题,是否可以使用markerwithlabel.libarayTank您,我已经完成了,在单击marker first check之后,如果(event.target.localName==='span'){retrun;}
infowindow.open(map, this);
google.maps.event.addListener(markers[i], 'click', function(e) {
infowindow.setContent('Marker postion: ' + this.getPosition());
infowindow.setPosition(this.getPosition());
infowindow.open(map);
});