0
클러스터링을 구현하고 있습니다. 항목을 클릭하면보기에 가운데에 놓고 해당 핀에 정보창을 표시하는 목록이 있습니다. 만약 핀이 현재 클러스터되어 있다면, 클러스터는 평균 위치이므로 infobox는 잠재적 인 위치에서 벗어나게 될 것입니다.빙지도 (Bing Maps) 정상 핀이있는 클러스터 핀을 알려주는 방법
클러스터 계층에서 클러스터 된 핀만 가져 오는 방법이 있습니까?
내 솔루션을 찾을 수var PinYouAreMatching;//wherever you have this coming from
var primitives = clusterLayer.getPrimitives();
for(var i = 0;i < primitives.length;i++)
{
if(primitives[i] instanceof Microsoft.Maps.ClusterPushpin)
{
var contained = primitives[i].containedPushpins;
for(var j = 0;j < contained.length;j++)
{
if(PinYouAreMatching === contained[j])
{
//You found the cluster your pin is at eg. primitives[i].
}
}
}
}
당신은 당신의 주요 핀에서 클러스터에 대한 참조 클러스터 푸시 핀 콜백 일을 속도 때 결합 할 수 있습니다.
function clusterCallBack(cluster)
{
var contained = primitives[i].containedPushpins;
for(var j = 0;j < contained.length;j++)
{
contained[j].metadata = { cluster: cluster };
}
}
일부 재료를 줄일 수 있다는 사실 것 O (N^2) O 또는 아래로 O (N) (N) 또는 O (1).
불행히도 클러스터 된 압핀의 위치에서 클릭이 발생합니다. 클릭을지도에 직접 첨부되지 않은 메뉴 항목에서 가져 오려고합니다. 선형 검색이 좋을만큼 작은 수의 항목이 있습니다. 클러스터 계층에서 현재 클러스터 된 핀을 모두 가져 오는 방법은 없습니다. – user2927848
저는 그것을 이해했습니다. 프리미티브를 통과 할 때 instanceof Microsoft.Maps.ClusterPushpin을 사용할 수 있습니다. 또한 속도 향상을 위해 사용자 정의 클러스터 푸시 핀을 만들 때 핀에 대한 참조를 추가합니다. 감사합니다 rbrundritt. – user2927848