我正在制作基于Bing Maps AJAX v7 API的网络应用。首先,我使用以下代码将一组图钉添加到EntityCollection,地图处于缩放状态7:
PinPrefix='pinFS'
TotCnt++;
var PinPos = new Microsoft.Maps.Location(Lat, Lng);
pin = new Microsoft.Maps.Pushpin(PinPos, { text: Id, typeName: pinPrefix + TotCnt, icon: image, width: 32, textOffset: offset });
LayerFDS.push(pin);
$('.' + pinPrefix + TotCnt).data('Stat', Stat);
$('.' + pinPrefix + TotCnt).data('Phon', Phon);
$('.' + pinPrefix + TotCnt).data('Fax', Fax);
如果我运行相同的代码,但是使用缩放状态18,则在EntityCollection中创建图钉,但不在DOM中创建图钉。如果我尝试提取“传真”的值。 (使用var XX = $('。' + pinPrefix + TotCnt).data('传真'))返回' undefined'。当缩放返回到7时,实际的推送是在DOM中创建的,但我需要将这些值存储在创建图钉的循环中。有任何想法吗?无论缩放状态如何,在EntityCollecion和DOM中同时创建图钉的任何模糊选项都可以吗?
答案 0 :(得分:0)
如果引脚不在视图中,则可能无法在DOM中呈现。这是设计的。如果地图没有这样做,我们很幸运能够在它变慢之前在地图上加载100个图钉,而不是我们可以放几千个。将数据连接到图钉的正确方法是向图钉类添加属性,如“元数据”,并将数据作为对象存储在该属性中。例如pin.metadata = {myval:7}
您还可以向图钉添加id属性,然后循环实体集合并搜索id值。以下是代码示例:http://rbrundritt.wordpress.com/2012/04/02/get-entity-by-property-in-bing-maps-v7/