Javascript 谷歌地图视网膜标记与标签

Javascript 谷歌地图视网膜标记与标签,javascript,google-maps-api-3,google-maps-markers,Javascript,Google Maps Api 3,Google Maps Markers,我使用以下代码处理视网膜谷歌地图: var marker = new google.maps.Marker({ position: new google.maps.LatLng(lat, lon), title: title, map: map, id: id, icon: { url: "http://maps.goog

我使用以下代码处理视网膜谷歌地图:

var marker = new google.maps.Marker({
              position: new google.maps.LatLng(lat, lon),
              title: title,
              map: map,
              id: id,
              icon: {
                  url: "http://maps.google.com/mapfiles/kml/paddle/orange-blank.png",
                  size: new google.maps.Size(64, 64),
                  scaledSize: new google.maps.Size(40, 40),
                  origin: new google.maps.Point(0, 0),
                  anchor: new google.maps.Point(0, 0)
              },
              label: level + ""
          });
它的工作原理是,图标本身是缩放的,在视网膜显示上是锐利的。但正如您在这张图片上看到的,标签不再位于标记的中心。怎么处理?我已经尝试过使用origin和anchor,但没有成功。(红色标记是谷歌原始标记,不幸的是谷歌没有改变标准标记颜色的方法,或者有什么可用的?)

固定在:

icon: {
          url: "http://maps.google.com/mapfiles/kml/paddle/red-blank.png",
          size: new google.maps.Size(32, 42),
          scaledSize: new google.maps.Size(32, 32),
          origin: new google.maps.Point(0, -10),
          anchor: new google.maps.Point(16, 42)
}
对于其他使用这种图像的人来说,有很多颜色可以尝试……

  • 图标“”为64px 64px

  • 它被缩放为40px 40px
  • 其应位于[20,40](中心为右20像素,底部为缩放图像左上角向下40像素)
  • 应该在[20,12](20像素右,在中间,从顶部向下12像素)

  • 如果要在自定义标记上打开信息窗口,还需要设置标记的选项

代码片段:

函数初始化(){
var map=new google.maps.map(
document.getElementById(“地图画布”){
中心:新google.maps.LatLng(37.4419,-122.1419),
缩放:13,
mapTypeId:google.maps.mapTypeId.ROADMAP
});
var title=“title”;
var id=“id”;
风险值水平=2;
var lat=map.getCenter().lat();
var lon=map.getCenter().lng();
var marker=new google.maps.marker({
位置:新google.maps.LatLng(lat,lon),
标题:标题,,
地图:地图,
id:id,
图标:{
url:“http://maps.google.com/mapfiles/kml/paddle/orange-blank.png",
大小:新google.maps.size(64,64),
scaledSize:新的google.maps.Size(40,40),
来源:新google.maps.Point(0,0),
主播:新谷歌地图点(20,40),
labelOrigin:新的google.maps.Point(20,12)
},
标签:级别+“”,
主播点:新google.maps.Point(0,-40)
});
var infowindow=new google.maps.infowindow();
setContent(marker.getPosition().toUrlValue(6));
信息窗口。打开(地图、标记);
}
google.maps.event.addDomListener(窗口“加载”,初始化)
html,
身体,
#地图画布{
身高:100%;
宽度:100%;
边际:0px;
填充:0px
}

var marker = new google.maps.Marker({
  position: new google.maps.LatLng(lat, lon),
  title: title,
  map: map,
  id: id,
  icon: {
    url: "http://maps.google.com/mapfiles/kml/paddle/orange-blank.png",
    size: new google.maps.Size(64, 64),
    scaledSize: new google.maps.Size(40, 40),
    origin: new google.maps.Point(0, 0),
    anchor: new google.maps.Point(20, 40),
    labelOrigin: new google.maps.Point(20,12)
  },
  label: level + ""
});