Конвертировать шейп-файлы в GeoJSON?


19

Я пытаюсь преобразовать шейп- файлы с веб-сайта округа Сенат штата Техас в файл GeoJSON для использования с Google Maps API. Я использую QGIS для облегчения, но я не могу получить правильную проекцию / координаты. До сих пор я безуспешно пробовал Google Mercator (EPSG: 900913) и WGS 84 (EPSG: 4326). Я использую OpenLayers для проверки результатов, и он продолжает размещать Техас рядом с Гвинейским заливом (0 лат, 0 lng).

Ответы:


23

Нет проблем загрузить загружаемый шейп-файл непосредственно в QGIS.

Данные в EPSG: 3081, вам лучше оставить все как есть. Google API ожидает значения longlong, поэтому целевой CRS должен быть EPSG: 4326.

Просто щелкните правой кнопкой мыши на слое -> Сохранить как ..., чтобы выбрать тип файла GeoJSON, другое имя файла и EPSG: 4326 в качестве нового CRS. Вы можете добавить результат на холст, чтобы увидеть, что они выровнены ( On-the-fly-reprojectionвыбраны).


Любой способ «сохранить как» с несколькими слоями?
chrismarx

Нет, каждому файлу нужно свое имя. Вы можете использовать ogr2ogr в командной строке для пакетной обработки.
AndreJ

Похоже, что может быть использована поддержка пакетной обработки, которая поддерживает такие вещи, как разумные значения по умолчанию для автоматического именования файлов, чтобы просто отправить полученные файлы в папку
chrismarx

6

Вот инструмент конвертирования шейп-файла в geojson через веб-браузер без серверного кода и с поддержкой неанглийской кодировки, просто нужно загрузить zip-файл и установить правильную кодировку текста.

https://github.com/gipong/shp2geojson.js

Если вы используете эту библиотеку с Google Map api v3, вы можете пропустить поле кода EPSG, поскольку файл для загрузки ZIP-архива (PlanS172.zip) с веб-сайта округов Сената штата Техас содержит файл .prj.

loadshp({
    url: '/shp/PlanS172.zip', // path or your upload file
    encoding: 'big5' // default utf-8
}, function(geojson) {
    // geojson returned
});

введите описание изображения здесь


5

Через командную строку:

ogr2ogr -f GeoJSON -t_srs crs:84 output.geojson input.shp

Я думаю, это то, что использует веб-клиент из этого ответа .


Только что протестировано. Ведет себя намного лучше, чем QGIS, когда дело доходит до потребления оперативной памяти!
Икар Похорски


-2

GeoJSON основан на нотации объектов JavaScript. Здесь, в этом посте, вы можете изучить различные методы преобразования шейп-файлов в Интернете, в автономном режиме или с помощью API, который вы можете использовать. Посмотрите этот пост, чтобы преобразовать шейп-файлы в файлы GeoJSON для использования на карте Google.

Различные способы конвертировать Shapefile в GeoJSON - онлайн или оффлайн или API


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