Лучший способ наложить шейп-файл ESRI на карты Google? - PullRequest
62 голосов
/ 22 марта 2011

Каков наилучший способ наложения шейп-файла в Картах Google?

После прочтения можно предположить, что преобразование шейп-файла в KML и наложение KML на карте Google является одним из вариантов. Если это так, как мне преобразовать шейп-файл в KML?

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

Ответы [ 7 ]

41 голосов
/ 22 июля 2011

Мне нравится использовать (с открытым исходным кодом и дружественный графический интерфейс) Quantum GIS для преобразования шейп-файла в kml.

Google Maps API поддерживает только подмножество стандарта KML . Одним из ограничений является размер файла.

Чтобы уменьшить размер файла, вы можете Quantum GIS 'упростить геометрию'. Это "сглаживает" полигоны.

Затем вы можете выбрать свой слой и выполнить «Сохранить как кмл» на нем.

Если вам нужно обработать кучу файлов, процесс можно запустить с помощью команды Quantum GIS ogr2ogr из оболочки osgeo4w.

Наконец, я рекомендую сжать ваш kml (с вашей любимой программой сжатия) для уменьшения размера файла и сохранить его как kmz.

16 голосов
/ 02 июня 2011

Импортируйте шейп-файл в Google FusionTables (http://www.google.com/fusiontables), используя http://www.shpescape.com/, и оттуда вы можете использовать данные несколькими способами, например.показать его с помощью GoogleMaps.

13 голосов
/ 22 марта 2011

Вы имеете в виду шейп-файл, как в шейп-файле Esri ?В любом случае вы сможете выполнить преобразование, используя ogr2ogr , который доступен в пакетах GDAL .Вам нужен файл .shp и в идеале соответствующий файл .dbf (который предоставит контекстную информацию).

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

11 голосов
/ 08 сентября 2015

Я бы не использовал KML.Вместо этого используйте GeoJSON , который теперь можно использовать в API Карт Google.Это более новая функция, которой не было в оригинальных ответах.

В любом случае, просто откройте файл SHP в Quantum GIS , и затем вы можете вывести его в любом формате, который вам нравится (KML, GeoJSON).

Если вы используете Google Maps для работы, я обнаружил расширенное расширение, которое обрабатывает загрузку шейп-файлов напрямую, где вы можете просто подключиться напрямую к шейп-файлу, сгенерированному из ESRI.Я выполнил поиск на сайте CMaps и нашел этот фрагмент, который загружал США по шейп-файлу состояния: https://gmapsplugin.net/cmapsanalytics/assets/shapes/usstates.shp

var cMap = new centigon.locationIntelligence.MapView();
    cMap.key([your_api_key]);


    cMap.layerNames(["Basic Shapes"]);
    cMap.dbfKeys([['Alabama','Alaska','Arizona','Arkansas','California','Colorado','Connecticut','Delaware','District of Columbia','Florida','Georgia','Hawaii','Idaho','Illinois','Indiana','Iowa','Kansas','Kentucky','Louisiana','Maine','Maryland','Massachusetts','Michigan','Minnesota','Mississippi','Missouri','Montana','Nebraska','Nevada','New Hampshire','New Jersey','New Mexico','New York','North Carolina','North Dakota','Ohio','Oklahoma','Oregon','Pennsylvania','Rhode Island','South Carolina','South Dakota','Tennessee','Texas','Utah','Vermont','Virginia','Washington','West Virginia','Wisconsin','Wyoming']]);
    cMap.userShapeKeys([['Massachusetts','Minnesota','Montana','North Dakota','Hawaii','Idaho','Washington','Arizona','California','Colorado','Nevada','New Mexico','Oregon','Utah','Wyoming','Arkansas','Iowa','Kansas','Missouri','Nebraska','Oklahoma','South Dakota','Louisiana','Texas','Connecticut','New Hampshire','Rhode Island','Vermont','Alabama','Florida','Georgia','Mississippi','South Carolina','Illinois','Indiana','Kentucky','North Carolina','Ohio','Tennessee','Virginia','Wisconsin','West Virginia','Delaware','District of Columbia','Maryland','New Jersey','New York','Pennsylvania','Maine','Michigan','Alaska']]); 
    cMap.labels([['Massachusetts','Minnesota','Montana','North Dakota','Hawaii','Idaho','Washington','Arizona','California','Colorado','Nevada','New Mexico','Oregon','Utah','Wyoming','Arkansas','Iowa','Kansas','Missouri','Nebraska','Oklahoma','South Dakota','Louisiana','Texas','Connecticut','New Hampshire','Rhode Island','Vermont','Alabama','Florida','Georgia','Mississippi','South Carolina','Illinois','Indiana','Kentucky','North Carolina','Ohio','Tennessee','Virginia','Wisconsin','West Virginia','Delaware','District of Columbia','Maryland','New Jersey','New York','Pennsylvania','Maine','Michigan','Alaska']]); 

    cMap.polyDataSources([centigon.locationIntelligence.CMapAnalytics.DATA_PROVIDERS.SHAPE_DATAPROVIDER]);
    cMap.layerTypes([centigon.mapping.Layer.TYPE.POLY]);
    cMap.locations([["https://gmapsplugin.net/cmapsanalytics/assets/shapes/usstates.shp"]]);

    cMap.panTo("USA");
    cMap.zoomLevel(3);
2 голосов
/ 23 марта 2015

Просто чтобы обновить эти ответы, ESRI включил этот инструмент, известный как Layer to KML в ArcMap 10.X. Также существует инструмент Map to KML .

Просто импортируйте нужный слой (векторный или растровый) и выберите выходное местоположение, разрешение и т. Д. Очень простой инструмент.

2 голосов
/ 21 марта 2012

Бесплатный скрипт «Экспорт в KML» для ArcGIS 9

Вот список доступных методов, которые кто-то нашел.

Кроме того, мне кажется, что наиболее эффективное представление многоугольного слоя заключается в использовании полилинийного кодирования API Карт Google, который значительно сжимает последние данные. Но для перехода в этот формат требуется работа: используйте ArcMap, чтобы экспортировать Shape как координаты широты и долготы, а затем преобразовать в полилинии с помощью API Карт Google.

0 голосов
/ 17 января 2018

2018 уже ... Я нашел этот фантастический онлайн-инструмент http://mapshaper.org/ для преобразования шейп-файлов ESRI в SVG, TopoJSON, GeoJSON.

Вот объяснение того, как его использовать https://www.statsilk.com/maps/convert-esri-shapefile-map-geojson-format

Быстро и просто!:)

...