gpt4 book ai didi

javascript - 扩展 google.maps.Marker

转载 作者:行者123 更新时间:2023-11-28 02:48:18 25 4
gpt4 key购买 nike

我发现了这个关于在 v2 谷歌地图中扩展 GMarkers 的很棒的教程:http://www.googlemapsbook.com/2007/01/22/extending-gmarker/

不幸的是,在 v3 中,标记的设置非常不同(例如,您必须传入它将作为参数添加到的 map ,因此无法使用独立的 google.maps.Marker 对象来操作作为原型(prototype),或者至少在 map 初始化之前)。

有人知道如何扩展 google map v3 标记吗?

*编辑 - 事实证明我错误地将 map 作为必需参数。我稍后会将我的 v3 扩展作为答案发布,并将其标记为社区问题

最佳答案

下面是我最终使用的内容(我已经删除了用于自定义标记的大量代码,只留下了最基本的框架,所以我可能在编辑中犯了错误)。 newObj() 是一个函数(基于 Douglas Crockford 的代码),用于从原型(prototype)生成新对象,而不是使用构造函数。

function newObj(o) {
var params = Array.prototype.slice.call(arguments,1);
function F() {}
F.prototype = o;
var obj = new F();
if(params.length) {
obj.init.apply(obj,params);
}
return obj;
}

var MyMarkerProto = function() {
var proto = new google.maps.Marker(new google.maps.LatLng(0, 0));

proto.init = function (data) {
this.setPosition(new google.maps.LatLng(parseFloat(data.lat), parseFloat(data.lng)));
}
return proto;

}();

var myMarker = newObj(MyMarkerProto, {
lat: 51,
lng: 48,
otherData: "some other value"
});

关于javascript - 扩展 google.maps.Marker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4401337/

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