2012-06-03 2 views
0

구글 어스 플러그인에서 전체 힙 벡터를 렌더링하려고합니다. parseKml 메서드를 사용하여 Kml Feature 개체를 만들고 배열에 저장합니다. 코드는 아래와 같습니다. 나는 데이터베이스에서 반환하고 플러그인으로 그려주는 10,000 개의 kml 객체 목록을 반복합니다.Google 어스에서 맞춤 레이어를 만들어 가시성을 설정할 수있는 방법

// 'currentKml' is a kml string returned from my DB. 
// I iterate over 10,000 of these 
currentKmlObject = ge.parseKml(currentKml); 
currentKmlObject.setStyleSelector(gex.dom.buildStyle({ 
    line: { width: 8, color: '7fff0000' } 
})); 
ge.getFeatures().appendChild(currentKmlObject); 
// After this, I store teh currentKml object in an array so 
// I can manipulate the individual features. 

이것은 제대로 작동하는 것 같습니다. 그러나 이러한 모든 기능의 가시성을 한 번에 켜고 끄고 싶을 때 배열에있는 모든 kml 객체를 반복하고 개별 가시성을 설정하거나 해제해야합니다. 이것은 약간 느립니다. 축소 된 경우 각 줄이 사라지는 것을 천천히 볼 수 있으며 모든 줄이 사라지거나 다시 돌아 오는 데 약 5-10 초가 걸립니다.

레이어를 추가하고이 레이어의 하위 개체로 모든 개체를 추가하여이 프로세스의 속도를 높일 수 있는지 궁금합니다. 이렇게하면 전체 레이어의 가시성을 설정하거나 해제 할 수 있습니다.

코드에서 새 레이어를 만드는 방법을 찾을 수 없었습니다. 누군가가 적절한 방법을 지적 할 수 있다면 좋을 것입니다. 레이어가 프로세스 속도를 높이는 올바른 방법인지는 잘 모르겠습니다. 지도에있는 모든 개체를 한 번에 켜고 끌 수있는 과정을 빠르게 수행 할 수있는 방법에 대한 다른 제안도 있으면 도움이 될 것입니다.

도움을 주셔서 감사합니다.

답변

0

좋아,이 작업을 직접 수행해보십시오.

Google 어스 확장 프로그램 libarary에서 'buildFolder'메소드를 사용합니다. 내 객체 배열을 반복 할 때

var folder = gex.dom.buildFolder({ name: folderName }); 
ge.getFeatures().appendChild(folder); 

지금, 내가 대신 나중에 내가 폴더에서의 가시성을 켜거나 끌 수 있으며, 다음과 같은

folder.getFeatures().appendChild(currentKmlObject); 

이 방법을 사용하여 폴더에 추가 수준을 사용하여

folder.setVisibility(false); // or true 

그리고 꽤 잘 작동합니다. 지체가 없습니다. 모든 오브젝트가 한 번에 켜지고 꺼지는 것을 볼 수 있습니다. 그것은 아주 빠르고 성과가 있습니다.

관련 문제