我有一个谷歌地图,上面有一个标记。
我需要将标记设置为固定大小,例如 10x10 像素,并且即使放大或缩小也以相同的大小重新发送。
这就是我现在所拥有的(并且不起作用):
var marker = new google.maps.Marker({
position: circleCenter,
map: googleMap,
icon: {
path: google.maps.SymbolPath.CIRCLE,
fillOpacity: 0.5,
fillColor: 'ff0000',
strokeWeight: 10,
size: 5
}
});
当地图缩放更改时,是否可以阻止缩放其大小的标记?
Google 没有现成的方法来阻止标记缩放。
你可以使用地面覆盖层 https://developers.google.com/maps/documentation/javascript/reference#GroundOverlay在地图上设置固定区域,然后附加图像。地面覆盖的技巧是您必须知道边界对象的坐标,并且您可能必须想出某种计算边界的方法。在此示例中,我只是将中心点扩展为矩形。
您还会失去其他标记功能,因为此方法不使用标记对象(例如拖动、动画等),但叠加层确实具有单击事件。
这是一个概念证明:http://jsfiddle.net/bryan_weaver/4rxqQ/ http://jsfiddle.net/bryan_weaver/4rxqQ/
相关代码:
function initialize() {
var map;
var centerPosition = new google.maps.LatLng(38.713107, -90.42984);
var options = {
zoom: 9,
center: centerPosition,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map($('#map')[0], options);
var icon = 'https://www.google.com/mapfiles/marker_black.png';
var iconBounds = constructBounds(38.713107, -90.42984);
var staticOverlay = new google.maps.GroundOverlay(icon, iconBounds);
staticOverlay.setMap(map);
}
function constructBounds(lat, lng){
var sw = new google.maps.LatLng(lat - .03, lng - .025)
var ne = new google.maps.LatLng(lat + .03, lng + .025)
return new google.maps.LatLngBounds(sw, ne);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)