1

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を付加する他の方法に関するアイデア、またはこの問題を解決するためのアイデアはありますか?

4

3 に答える 3

3

次のように、画鋲にカスタムプロパティを追加するだけです。

pushpin.MyID='いくつかのID';

次に、このブログ投稿で説明されている方法を使用して、IDでプッシュピンを取得できます:http://rbrundritt.wordpress.com/2012/04/02/get-entity-by-property-in-bing-maps-v7/

于 2013-11-29T22:38:04.423 に答える
1

プレーンな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をフェッチできます。

BingMapsオブジェクトを拡張するためにパブリックAPIを使用することをお勧めします。

ここにそれについてのブログ投稿を書きました。

于 2013-12-10T22:14:14.140 に答える
0

pushpin.custidプロパティを使用する代わりに、pushpin.getId()のデフォルトのメソッドを使用し、それを再定義してcustidを返すことができます。

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

var custid=13;
pushpin.getId = function (){
    return custid;
}
map.entities.push(pushpin);
于 2015-03-20T17:18:17.570 に答える