我希望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);
}
google.maps.event.addDomListener(window, 'load', initialize);
但是有没有比上面的Jsfiddle更流畅的解决方案?
答案 0 :(得分:2)
根据您的评论:是的,您可以使用标记对其进行解决,但是没有“即用型”和#39; MarkerOptions中的选项。您可以添加缩放更改侦听器并为标记图标设置新比例,而不是此操作。而不是GroundOverlay
System.Windows.Forms
你会使用标记
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);
然后,您只需添加缩放更改侦听器并根据缩放级别计算新大小:
var icon = 'https://www.google.com/mapfiles/marker_black.png';
var marker = new google.maps.Marker({
position: {
lat: 38.713107,
lng: -90.42984
},
map: map,
icon: icon
});
当然,您可以更改计算,以便图标大小以不同的方式更改。我刚刚创建了一个简单的例子。我刚刚更新了your fiddle。