2012-12-02 3 views
1

C# winforms-ge-plugin을 사용하여 wi-fi 핫스팟을 ge 글로브에 추가하고 kmltreeview를 검색 프로토콜로 추가합니다. GPS 좌표를 사용하는 도시를 기준으로 그룹화하고 싶습니다. 계획은 각 도시를 폴더로 그룹화하는 것이지만 kmltreeview에서 폴더를 만드는 방법을 파악하는 데 문제가 있습니다. 프로그래밍 방식으로 kmltreeview 폴더를 만들고 위치 표시를 추가하려면 어떻게합니까?

원래 나는이 시도 :

 var folder = kmlTreeView.CreateNode(FC.GEPluginCtrls.ApiType.KmlFolder); 
     kmlTreeView.ParseKmlObject(folder); 

을했지만 작동하지 않았다.

나는 다른 포럼에 대한 몇 가지 자바 스크립트 기반의 코드를 발견하지만 중 하나를 작동하지 않습니다 : 당신이 제공 할 수있는 어떤 도움

 var folder = ge1.createFolder("test"); 
     folder.getFeatures().setVisibility(true); 
     folder.getFeatures().setOpen(true); 

     var placemark = ge1.createPlacemark(); 
     folder.getFeatures().appendChild(placemark); 

     ge1.getFeatures().appendChild(folder); 

감사합니다! TC

+0

? null 개체를 얻습니까? 장소 표시를 추가하지 않습니까? 구체적으로 일어나는 일에 대해 자세히 설명 할 수 있다면 도움이 될 것입니다. – WildCrustacean

답변

1

CreateNode 메서드는 모든 KmlObject를 매개 변수로 사용하지만 api의 형식 중 하나의 열거자를 전달합니다. .

단순히

var folder = ge1.createFolder("test"); 
kmlTreeView.ParseKmlObject(folder); 

는 설명하기 위해 다음에 그것을 구문 분석, 폴더를 만들 KmlTreeView 다른 'KML'아무것도 생성하거나 KmlFolders을 만들거나하지 않습니다 - 단지에로드 KmlObjects의보기를 표시 그것은 계층 구조의 노드입니다.

실제로 'treeview'에 표시되는 'folder'는 KmlFolder 또는 KmlDocument와 같은 KmlContainer를 나타냅니다.

KmlTreeView를 사용하는 또 다른 방법은 플러그인에로드하는 kmlObject를로드하는 것입니다. 이것은 대개 GEWebBeowser의 FetchKml 메소드 호출에서 반환되는 것과 동일한 객체입니다. 예를 들어.

// load the plugin 
    geWebBrowser1.LoadEmbededPlugin(); 

    // when the plug-in has loaded 
    geWebBrowser1.PluginReady += (o, e) => 
    { 
     // load the kml from the local server 
     kmlTreeView1.SetBrowserInstance(e.ApiObject); 
     geWebBrowser1.FetchKml("http://foo/some.kml"); 
    }; 

    // when the kml has loaded 
    geWebBrowser1.KmlLoaded += (o, e) => 
    { 
     // add the kml to the plugin and tree-view 
     geWebBrowser1.ParseKmlObject(e.ApiObject); 
     kmlTreeView1.ParseKmlObject(e.ApiObject); 
    }; 

트리보기는 플러그인의 표시와 동기화됩니다 이런 식으로 - 당신이 자신의 위치로 날아 트리보기의 노드에 이렇게 더블 클릭 등

어떻게됩니까
+0

감사합니다. 프레이저. documentation.xml 파일을 사용하여 필드, 메서드 등을 검색하고 createFolder는 거기에 없습니다. 이 품목을 찾을 수있는 더 좋은 곳이 있습니까? 또한 폴더가 만들어 지지만 레이블로 텍스트가 없습니다 (필자는 'test'라고 가정했습니다). 폴더의 속성은 어디에서 찾을 수 있습니까? 감사. – CramerTV

+0

createFolder는 Google 어스 API의 GEPlugin 개체 메소드입니다. https://developers.google.com/earth/documentation/reference/interface_g_e_plugin – Fraser

+0

'test'는 폴더 ID이며 setName ("whatever")을 사용하여 이 이름은 트리 뷰의 노드에 대한 레이블로 표시됩니다. – Fraser

관련 문제