首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >扩展google.maps.Marker

扩展google.maps.Marker
EN

Stack Overflow用户
提问于 2010-12-10 01:40:34
回答 1查看 3.3K关注 0票数 1

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

不幸的是,在v3中,标记的设置是非常不同的(例如,你必须传入一个地图,它将被添加到一个参数中,所以不能有一个独立的google.maps.Marker对象作为原型,或者至少在你的地图初始化之后)。

有人知道如何扩展谷歌地图的v3标记吗?

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-20 17:15:06

下面是我最终使用的代码(我已经去掉了很多用于自定义标记的代码,只留下了最基本的部分,所以我可能在编辑时犯了一个错误)。newObj()是一个函数(基于Douglas Crockford的代码),用于从原型生成新对象,而不是使用构造函数。

代码语言:javascript
复制
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"
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4401337

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档