谷歌地图API v3,标记图标有透明填充,如何计算这个填充?

时间:2013-03-20 14:07:20

标签: google-maps google-maps-api-3

我使用谷歌地图的自定义标记图标。我的问题是简单,透明的png,我准备在底部有额外的23px的空白空间 - 这是为了一些photoshop发光效果,但实际的标记点从底部开始是23px。

如何将此考虑在内以使标记落在正确的位置?我需要像margin-bottom这样的东西:-23px;但是用javascript。

艰难的方法是在latlong测量中计算23px而不是调整标记位置。但那将是非常难看的......

有什么想法吗?

到目前为止,我已经这样了:

var marker_icon = new google.maps.MarkerImage('<?php echo get_bloginfo("template_url"); ?>/images/marker.png', new google.maps.Point(10,10));
                                var marker = new google.maps.Marker({
                                  position: latlngPos,
                                  map: map,
                                  icon: marker_icon
                                });

但是因为我改变了icon:变量,我再也看不到标记了。控制台什么也没告诉我。

图像就是这样:

enter image description here

2 个答案:

答案 0 :(得分:2)

请参阅有关如何定义custom Icon

的文档
  

锚点点|将图像锚定在与地图上标记的位置相对应的位置。默认情况下,锚点位于图像底部的中心点。

     

url |字符串|图像或精灵表的URL。   google.maps.MarkerShape对象规范

它是从图像的左上角(0,0)计算出来的。但是你没有提供尺寸。

Developers Guide (with example)

您的图片为59px×72px 所以我认为主播应该是72-23:new google.maps.Point(30,49);

var marker_icon = {
   url: <your url>,
   size: new google.maps.Size(59,72),
   origin: new google.maps.Point(0,0),
   anchor: new google.maps.Point(30,49)
};

答案 1 :(得分:0)

解决方法就是这样做:

var marker_icon = {
                                      url: '<?php echo get_bloginfo("template_url"); ?>/images/marker.png',
                                      size: new google.maps.Size(59,72),
                                      origin: new google.maps.Point(0,0),
                                      anchor: new google.maps.Point(29,58)
                                    };

感谢geocodezip的指示。