Открытие созданного CGI файла KML в Google по более широкой ссылке - PullRequest
0 голосов
/ 04 декабря 2011

У меня есть веб-приложение, которое использует карты Google для отображения данных из базы данных, используя Perl CGI для запроса базы данных.Я решил добавить опцию для просмотра данных в Google Earth (автономно, а не в плагине) вместо Google Maps.

Как это работает: пользователь заполняет форму, а затем нажимает на ссылку, которая вызывает некоторый javascript, который генерирует URL на основе формы.В зависимости от ввода формы может открываться от 1 до 30 URL.

Пример сгенерированного URL: "http://wildlifedb -testing.buffalofieldcampaign.org // qs.pl? Format = kml & startdate = 2007-11-27 & enddate = 2007-12-4 & разновидности = бизоны и активность = ¢ erlat = 44.714721 ¢ erlon = -111.159067 ¢ erdist = 15 & limit = 2000 "

Я могу взять этот URL и добавить его в качестве сетевого звена в GE, и он откроетсяпросто отлично, но я не могу понять, как заставить его открываться в GE прямо из браузера.Я попытался установить window.location = url, и это просто заставляет браузер загрузить файл.

И да, у меня правильно настроен тип mime: "application / vnd.google-earth.kml +XML "

Ответы [ 3 ]

1 голос
/ 04 декабря 2011

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

Посмотрите, как Википедия справляется с этим. Вы переходите с страницы с географическим местоположением (широта / долгота в верхнем правом углу) на GeoHack, который предоставляет несколько картографических сайтов, включая GE. Некоторые сайты могут быть открыты напрямую, потому что они являются веб-приложениями. Запросы GE отправляются KML для загрузки, поскольку это приложение для настольных компьютеров. Безопасность.

0 голосов
/ 08 декабря 2011

Может использовать Google Earth API, чтобы сделать реализацию Google Earth на основе браузера. http://code.google.com/apis/earth/

Или для базового интерфейса передайте URL KML этому http://earth.google.com/kmlpreview/#url=http://www.example.com/path/to/file.kml

(просто чтобы убедиться, что urlencode ваш URL - так как у вас есть специальные символы)

Пример здесь

0 голосов
/ 05 декабря 2011

Итак, в итоге возникли проблемы, одна из которых связана с заголовками http, которые я смог решить, добавив в заголовки следующее:

Content-Disposition: attachment;filename = "sightings.kml"

Другая проблема заключалась в возможности открыть несколько файлов, которые я смог решить, используя window.open () вместо установки window.location

...