Как программно удалить узлы KML из Google Earth? - PullRequest
0 голосов
/ 22 июня 2009

Я создаю приложение winforms в C #, которое встраивает Google Earth в качестве средства просмотра. Как это . Мое приложение регулярно получает данные, преобразует их в KML и отображает результат в Google Планета Земля. Всякий раз, когда я получаю новое обновление, я хочу удалить старый KML, но я не могу найти, как в GE API. Все, что я нашел, делает старые вещи невидимыми:

        this.ge = new ApplicationGEClass();
        // ....
        string newKml = this.ConvertNewInputToKML();
        this.ge.LoadKmlData(ref newKml);
        FeatureGE oldFeature = this.ge.GetFeatureByName("myOldKmlFeature");
        oldFeature.Visibility = 0;

Интересно, не вызовет ли это проблемы с памятью / производительностью в долгосрочной перспективе. Или есть способ удаления узлов Google Планета Земля KML?

Ответы [ 3 ]

1 голос
/ 30 ноября 2010

Вы должны быть в состоянии использовать ge.getFeatures (). RemoveChild (kmlObject); если у вас еще есть дескриптор старого объекта.

1 голос
/ 22 июня 2009

Вы можете использовать NetworkLink с обновлением на основе времени для замены старых данных через определенный интервал. http://code.google.com/apis/kml/documentation/kmlreference.html#networklink

Могут быть и другие способы указать его изнутри KML.

0 голосов
/ 22 июня 2009

KML - это не что иное, как XML. Я бы порекомендовал вам удалять соответствующие узлы из дерева XML и перезаписывать в файл так часто.

Я пока не очень хорошо знаю KML. Вам нужно заново загружать весь файл каждый раз, когда вы хотите внести изменения в то, что было отрендерено?

...