여전히 '화면에 렌더링'되어 있는지 확실하지 않습니다. 실제로 볼 수 있다면 렌더링 될 위치 표시를 계산하지 않으시겠습니까? 예를 들어 행성).
의미가있는 경우 위치 표시를 계산할 때 문제가 발생하는 경우 현재보기의 경계를 계산 한 다음로드 된 장소 표시가 경계 내에 있고 표시되는지 확인하는 것이 유일한 방법입니다.
KML DOM이 클 경우 시간이 갈수록 전체 DOM을 걷고 DOM의 각 요소를 경계보기로 확인해야하므로 KML DOM이 큰 경우 시간이 오래 걸릴 수 있습니다. api로 배치 함수로 코드를 실행하여 무언가를 얻을 수 있습니다.
당신이 이것을 시험해보고 싶다면 earth-api-utility-library을 살펴 보길 바란다. 그것은 Kml dom과 계산 경계 객체를 트래버스하는 유용한 방법을 가지고있다 - 당신이 그것을 최대한 활용할 수 있어야한다.
EDIT : 렌더링 된 것이 아니라면 훨씬 더 쉽습니다. 여전히 본질적으로 동일한 반복 프로세스입니다. 그러나 이제 뷰 경계를 계산하거나 비교할 필요가 없습니다.
어디서나 전체 눈에 보이는 아이콘을 얻으려면 KML dom을 걸어보고 getVisiblity()
을 통해 각 장소의 가시성을 확인하기 만하면됩니다.
var gex = new GEarthExtensions(ge);
var function countVisiblePlacemarks() {
var count = 0;
gex.dom.walk({
rootObject: ge,
visitCallback: function() {
if ('getType' in this &&
this.getType() == 'KmlPlacemark' &&
this.getVisibility())
++count;
}
});
return count;
}
분명히 당신에게 달려있다 countVisiblePlacemarks
를 호출하는 방법 - 타이머 등의 API 이벤트, 버튼)에. 결과 카운트로하는 일은 당신에게 달려 있습니다.
위의 예에서 권장하고 사용한 확장 라이브러리를 사용하는 경우 check the developers guide은 매우 유용합니다.
시각적으로 무엇을 의미하는지 명확히 할 수 있습니까? 플러그인에로드되었거나 화면에 현재 렌더링 중임을 나타냅니다. – Fraser
@Fraser 현재 화면에 표시되는 것을 의미합니다. – Ben