我使用谷歌地图的自定义标记图标。我的问题是简单,透明的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:变量,我再也看不到标记了。控制台什么也没告诉我。
图像就是这样:
答案 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的指示。