Отображение локального файла в Google Maps?


46

Как получить файл KML / KMZ для отображения на Картах Google без общедоступного веб-сервера?


Ирония в вашем вопросе в том, что вы подключены к Интернету. Как вы получаете Google Maps?
CrazyEnigma

Под «без общедоступного сервера» вы подразумеваете, что kml должен быть на локальной машине, или что вам не нужно беспокоиться об установке / настройке / покупке публичного веб-сайта? И пользовательскую карту, которую вы хотите сделать, должны видеть другие или только вы?
Мэтт Уилки

Ситуация такова: «Я могу добраться до Интернета, но Интернет не может добраться до меня». В этом случае вы не можете использовать поддержку KML-файлов в API Карт Google.
Кристофер Шмидт

display-kml.appspot.com - еще один вариант, я полагаю.
Карл Хенселин

Вы можете скачать KML / KMZ для Google Drive, он имеет встроенную поддержку визуализации docs.google.com/file/d/0B9sBXp66G86xWmlRbkZiYlRNdmc/edit
KindDragon

Ответы:


32

Чтобы открыть файл KML или KMZ в Картах Google, я добавляю следующий префикс к онлайн-ссылке на файл KML:

http://maps.google.com/maps?q=

Обычно я помещаю KML или KMZ в раскрывающийся список, а затем копирую / вставляю общедоступную ссылку в конец приведенного выше фрагмента. Затем я могу отправить эту ссылку кому-нибудь по электронной почте или разместить где-нибудь в Интернете. Я также использовал Google Docs для хранения KML и страницу Links на моем веб-сайте для распространения ссылок.

Пример:

Горный поход Харви:

http://maps.google.com/maps?q=http://dl.dropbox.com/u/359140/KML/HarveyMountainHike.kmz


14
Этот подход больше не работает. После нажатия на ссылку выше, я просто получаю карты Google со ссылкой на Dropbox в окне поиска.
Дерек Грир,

7
Работа с KML на maps.google.com вскоре будет прекращена: support.google.com/maps/answer/41136?hl=ru
Koen.

1
Я обнаружил, что вы можете просто щелкнуть ссылку «Поделиться» на Google Диске, и KMZ автоматически загрузится в Карты Google без каких-либо дополнительных расширений. Протестировано в Chrome и Explorer.
Эмиль Брундейдж

10
К сожалению, Google Maps не поддерживает эту функцию.
Хендри

5
Апрель 2017 г. ОБНОВЛЕНИЕ: вы можете напрямую импортировать файл KML в функцию «Мои карты» на Картах Google, и он отобразит все ваши данные KML в формате Карт Google.
Baodad

31

Это для чего-то, что вы хотите сделать постоянно доступным для других, или просто для временного просмотра?

Один из приемов, которыми я пользуюсь довольно часто, - это поместить файл KML в мою общедоступную папку DropBox (найти кого-то, у кого есть учетная запись, и он получит дополнительные 250 МБ как у вас, так и у них), а затем вставить этот URL в Карты Google, чтобы визуализировать и делиться с другими в краткосрочной перспективе.

В более долгосрочной перспективе у вас есть возможность создать новую карту Google "Мои карты" и импортировать в нее KML, KMZ или GeoRSS. После этого вы можете поделиться полученной картой, используя стандартные инструменты «Мои карты».

Вы также можете использовать Google Docs для хранения и обмена файлами KML с другими. Моя рекомендуемая техника:

  1. Создайте папку и отметьте ее для публичного доступа.
  2. Используйте ссылку Загрузить, чтобы загрузить ваши файлы KML в эту папку без конвертации и поделиться с миром
  3. Перейдите по ссылке Скачать, скопируйте ее и вставьте в окно поиска Google Maps.

Интересно, как долго Google разрешает интерактивное совместное редактирование документов KML через Google Docs? Теперь это было бы круто ...


Одна вещь, о которой следует позаботиться: если вы измените файл (и это может включать «сохранить как» с тем же именем файла), Dropbox изменит идентификатор файла (часть хеша) в ссылке. Регулярное открытие и сохранение (например, в текстовом редакторе) не создает проблем.
Хелтонбайкер

26

Вы можете загрузить файл KML в Карты Google:

  1. Войдите в свою учетную запись Google и перейдите на страницу http://maps.google.com.
  2. Нажмите на My Maps
  3. щелчок Create a new map
  4. Добавить заголовок и описание
  5. щелчок Import
  6. Нажмите Choose file, выберите KML для загрузки, а затем нажмитеUpload from file

Мои Карты

Создать новую карту

Импортировать

Загрузить

Теперь все готово :)


Интересно, что это ответ, который наиболее непосредственно касается вопроса.
Марк Бостлман

Не работает для KMZ, содержащего файл KML, размер которого превышает 5 МБ.
Sussch

6

Ты не можешь

Google:

С февраля 2015 года карты, созданные в классических Картах Google - https://maps.google.com/ - больше не будут загружать файлы KML / KMZ с внешних веб-сайтов. Однако мы знаем, что файлы KML - это действительно полезный способ работы с географическими данными, поэтому мы добавили KML в Google Мои карты и продолжаем поддерживать этот формат с другими API Карт Google. Мы надеемся, что один из этих вариантов удовлетворит ваши потребности.

https://developers.google.com/maps/support/kmlmaps

Раньше я отображал локальные файлы .kml и .kmz на картах Google, но теперь не могу :(


1
Как вы упомянули, поддержка перенесена в Мои карты.
MastaBaba

Файлы KML могут не импортировать все свои данные, в том числе: информационные выноски с HTML или JavaScript, туры KML, элементы на основе времени, наложения изображений и экранов, мультигеометрии, 3D-модели, папки Folder developers.google.com/maps/support/kmlmaps
Dale

4

Короткий ответ: вы не можете. Использование локального файла с простым старым веб-приложением Google Maps нарушило бы изолированную программную среду браузера и ту же политику происхождения .

Один из вариантов, хотя и дорогостоящий, заключается в том, что вы можете использовать Google Maps Premier для размещения maps-x.js в локальной файловой системе вместе с соответствующим KML.

Другой вариант - использовать существующий общедоступный веб-сервер, такой как Сайты Google .

Также имейте в виду, что вы можете использовать OpenLayers в качестве альтернативы Google Maps Premier.


2
OpenLayers будет ограничен (в современных браузерах) нефайловыми URL-адресами, по крайней мере, в Firefox, но вы можете настроить локальный / непубличный веб-сервер и использовать его. Обратите внимание, что «песочница» на самом деле не является причиной того, что вы не можете делать то, что вы хотите с Google: если страница HTML размещена на вашем локальном сервере, JS должен иметь возможность считывать файл с локального сервера. Вы только не можете, потому что Google анализирует все файлы на стороне сервера - поэтому их сервер должен общаться с вашим сервером, чего он не может.
Кристофер Шмидт

Ах, хорошая мысль. Я думал о файлах в локальной файловой системе, а не в локальном httpd.
Джон Брингхерст

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.