Я написал веб-приложение, которое использует плагин Google Earth для визуализации десятков (если не сотен) геотегированных источников данных в качестве сетевых ссылок. На данный момент единственный способ получить обновления на дисплее - установить автоматическое обновление на каждой сетевой ссылке. Однако со многими ссылками и коротким интервалом обновления (1-2 с) сервер, на котором размещаются ссылки, легко перегружается (загрузка процессора достигает почти 100%). Многие из этих обновлений не возвращают никаких данных, поэтому я хотел бы использовать механизм push и иметь возможность подталкивать обновления KML к клиенту по новым данным - это избавит меня от большой обработки. Есть ли способ асинхронно нажимать KML на плагин GE (желательно на Java)?Можно ли нажать KML на Google Earth?
ответ
Теоретически это можно сделать с помощью длинного опроса.
Вы только что установили, что сервер поддерживает открытое соединение и проверяет, доступен ли новый контент, как только он появится, он возвращает его клиенту.
GE будет открывать только одну сетевую ссылку на соединение, поэтому пока соединение открыто, ничего не происходит, старое содержимое видно. Как только данные обновляются, новое соединение открывается через X секунд. Повторение процесса.
Сервер должен иметь возможность поддерживать большое количество подключений открытым, но в основном это дормент, поэтому не должно вызывать нагрузки. (вам просто нужно приложение веб-сервера, способное это сделать)
Но на практике его обманывали подводные камни. В основном, если есть какой-либо прокси-сервер между GE и сервером, они часто будут тайм-аут, прежде чем что-либо произойдет, и отключите соединение. И, к сожалению, после сбоя сетевого соединения один раз, GE обычно перестает пытаться обновить эту ссылку.
Alternativly мог бы использовать в Update механизм, встроенный в KML. Таким образом, у вас есть только ОДИН, освежающий сетевой канал. Но это может быть сложно сделать, чтобы работать надёжно.
Наконец, и, вероятно, наиболее recommedned - это реализовать механизм обновления за пределами плагина, в JavaScript. Таким образом, тот факт, что ссылка обновляется, переносится в контейнер Javascript, который затем просто специально обновляет определенный контент по мере необходимости.
Может использовать подобный длинный опрос в JS или использовать что-то вроде websockets для Push-уведомлений. Есть надежные реализации, которые можно просто повторно использовать.
- 1. Google Earth KML
- 2. Может ли Google Earth экспортировать файлы kml, которые можно использовать в Google Earth Api?
- 3. Не показывать KML на Google Earth app
- 4. Google Earth и Google Maps KML Несоответствие
- 5. Анимированная метка в kml Google Earth?
- 6. KML + Google Earth: заполните четырехугольник растровым изображением?
- 7. Как добавить динамический kml в Google Earth?
- 8. Режимы высоты земли KML Google Earth
- 9. Google Earth Как анимировать метки KML плавно
- 10. Показать файл KMZ/KML google earth онлайн
- 11. Преобразование Google Earth KmlPolygon в строку KML
- 12. KML to google earth network link
- 13. Почему Google Earth меняет координаты полигона KML?
- 14. Высота многоугольника игнорируется в KML/Google Earth
- 15. как получить kml google earth api
- 16. Значок в файле Google Earth .kml
- 17. Рисование купола в Google Earth с KML
- 18. Можно ли отображать карту Google Earth INSIDE Excel?
- 19. Matlab kml, чтобы открыть в Google maps вместо google earth
- 20. Загрузка файлов kml в плагин google-earth на веб-странице
- 21. Что случилось с моим анализом кода kml на Google Earth?
- 22. загрузите файл kml в google earth с помощью vb.net
- 23. KML + Google Earth: сделать многоугольник или GroundOverlay кликабельными?
- 24. Определите, установлен ли Google Earth (в Windows)
- 25. google earth unfilled polygon
- 26. Интерактивные элементы google earth
- 27. Google Earth не будет открывать ссылки в KML с пробелами
- 28. KML + Google Earth: большой сложный оверлей с селектором временной шкалы?
- 29. Можно ли открыть файл kml на Gmaps?
- 30. Как добавить файл KML Google Earth в html iframe?
Большое спасибо за подробный ответ! Длительный опрос звучит как интересная идея, это может быть ответ на мою проблему. Имея только одну освежающую ссылку - это звучит сложнее, но, возможно, даже лучше, мне нужно будет пересмотреть примеры использования и посмотреть, можно ли это сделать так. Я не понимал, что обновление KML может обновлять не только один документ. Что касается вашего последнего (рекомендуемого) предложения - я не совсем уверен, что понимаю. Не могли бы вы указать мне какой-нибудь ресурс/пример? Я использую GWT (GUI, AJAX) и сервлеты (обновления KML на стороне сервера). Спасибо! – m0squito