2014-06-10 1 views
0

Bing Maps AJAX v7 API를 기반으로 웹 앱을 만들고 있습니다. 나도 같은 코드를 실행하지만, 경우Bing Maps v7 EntityCollection이 DOM에서 압핀을 만들지 않습니다.

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), 압정은 : 첫째,이 코드를 사용하여, 줌 상태 (7)의지도와 더불어, EntityCollection에 압정 그룹을 추가 해요 EntityCollection에 작성되었지만 DOM에는 작성되지 않았습니다. 'XX'$ ('.'+ pinPrefix + TotCnt) .data ('Fax')를 사용하여 '팩스'의 값을 추출하려고하면 '정의되지 않음'이 반환됩니다. 확대/축소가 7로 돌아 오면 DOM에 실제 푸시 핑이 만들어 지지만이 값을 푸시 핀을 만드는 루프 안에 저장해야합니다. 어떤 아이디어? 확대/축소 상태에 관계없이 EntityCollecion과 DOM에 압핀을 동시에 생성하는 모호한 옵션이 있습니까?

답변

0

핀이 보이지 않는 경우 DOM에 렌더링되지 않을 가능성이 있습니다. 이는 의도적으로 설계된 동작입니다. 지도가 이렇게하지 않으면 우리는 천천히되기 전에지도에 100 개의 푸시 핀을로드 할 수있어서 운이 좋을 것입니다. 대신 몇 천 개를 넣을 수 있습니다. 압핀에 데이터를 연결하는 적절한 방법은 압핀 클래스에 "메타 데이터"와 같은 속성을 추가하고 해당 속성에 데이터를 객체로 저장하는 것입니다. 예를 들어 pin.metadata = {myval : 7}

또한 id 속성을 압정에 추가 한 다음 나중에 엔티티 컬렉션을 반복하고 id 값을 검색 할 수 있습니다. 다음은 코드 샘플입니다. http://rbrundritt.wordpress.com/2012/04/02/get-entity-by-property-in-bing-maps-v7/

+0

두 번째 방법을 사용했습니다 (모든 항목을 반복). "viewchangedend"이벤트를 매핑하는 함수를 첨부했습니다. 이 함수에서 먼저 pushpin.toString = "[Pushpin]"인지 확인한 다음 pushpin.getLocation이 map.getBounds에 포함되어 있는지 확인합니다. If visible visibleport 내부에 있다면, $ ('. pushpin'). 데이터 ('fax')를 확인하고, undefined를 반환하면 필요한 모든 값을 할당하고, 'undefined'와 다른 값을 반환하면 나는 다음 압정. 가장 효율적인 방법은 아니지만 지금까지 노력하고 있습니다. @rbrunditt 감사합니다. – BernieSF

관련 문제