gpt4 book ai didi

javascript - 谷歌地图 V3 : prevent marker scaling

转载 作者:行者123 更新时间:2023-11-30 06:34:09 25 4
gpt4 key购买 nike

我有一张谷歌地图,上面有一个标记。

我需要标记为固定大小,例如 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
}
});

是否可以在更改 map 缩放比例时阻止缩放其大小的标记?

最佳答案

Google 没有开箱即用的方法来阻止标记缩放。

你可以使用 Ground Overlay在 map 上设置固定区域,然后附加图像。地面覆盖的技巧是您必须知道边界对象的坐标,并且您可能必须想出一些计算边界的方法。在这个例子中,我只是将一个中心点扩展成一个矩形。

您还会失去其他标记功能,因为此方法不使用标记对象(例如拖动、动画等),但叠加层确实有点击事件。

这是一个概念证明: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);
}

关于javascript - 谷歌地图 V3 : prevent marker scaling,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15667174/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com