在Bing地图中使用图钉附加自定义ID [英] Attaching custom ID with pushpin in Bing maps

查看:0
本文介绍了在Bing地图中使用图钉附加自定义ID的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想给我的Bing地图上的图钉添加一个唯一的ID号(取自DB)。 当我不使用任何主题(如Bing主题)时,它可以完美地工作,如下所示:

var pushpin = new Microsoft.Maps.Pushpin(new Microsoft.Maps.Location(lat, lon), 
{icon: some_icon, width: 34, height: 43});

pushpin.customid = 13;
map.entities.push(pushpin);

然后我可以稍后通过PushPin对象访问此"Customid"属性。

但是,当我激活Bing主题时,除了这些对我的应用程序至关重要的自定义值之外,所有东西都可以工作。

有没有其他方法给这些图钉附加一些唯一的ID,或者解决这个问题的想法?

推荐答案

我使用普通的JavaScript对象来包装图钉及其功能,这样我就不会将自定义属性存储在图钉上,而是将它们存储在包装对象上。

例如,假设我们已经指定了地图和位置,然后我们可以创建我们的对象:

var Pin = function(location, map) {
    this._pushpin = new Microsoft.Maps.Pushpin(location);
    map.entities.push(this._pushpin);
    this.id = (new Date).valueOf();
    var self = this;
    Microsoft.Maps.Events.addHandler(this._pushpin, 'click', function() {
        console.log(self.id);
    })
};

这样,当我们以后需要引用图钉的id时,例如当图钉被点击时,我们就可以获取包装对象的id。

使用公共API扩展Bing地图对象是一种很好的做法。

写了一篇关于它的博客here

这篇关于在Bing地图中使用图钉附加自定义ID的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆