Google 没有开箱即用的方法来阻止标记缩放。
您可以使用地面叠加层在地图上设置固定区域,然后附加图像。地面覆盖的诀窍是您必须知道边界对象的坐标,并且您可能必须想出一些计算边界的方法。在这个例子中,我只是将一个中心点扩展为一个矩形。
您还会失去其他标记功能,因为此方法不使用标记对象(例如拖动、动画等),但覆盖确实具有单击事件。
这是一个概念证明: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);
}