Конвертер в Shapefile: GeoJSON, KML, GPX и CSV в SHP
Загрузите файл, выберите систему координат и кодировку и скачайте слои точек, линий и полигонов с файлами .shp, .shx, .dbf, .prj и .cpg в одном архиве ZIP.
1 Исходные данные
Координаты KML, GPX и GeoJSON читаются как WGS 84.
Первая строка читается как заголовок. Координаты указываются в десятичных градусах (например, 55.7558); десятичная запятая тоже принимается.
2 Система координат результата
3 Параметры
Значения Z проверяются после загрузки файла.
Файл обрабатывается в браузере и не отправляется на сервер. По сети загружаются только тайлы OpenStreetMap и Esri для карты предпросмотра.
Связанные инструменты
Что такое shapefile и почему его до сих пор требуют
Shapefile — векторный формат, который Esri опубликовала в начале 1990-х годов вместе с открытым техническим описанием. Это не один файл, а набор файлов с общим именем: геометрия хранится в .shp, индекс в .shx, таблица атрибутов в .dbf, система координат в .prj, кодировка в .cpg. Формат по-прежнему часто указывают в требованиях к сдаче данных и используют для обмена между разными ГИС-программами. Этот инструмент преобразует GeoJSON, KML, KMZ, GPX, а также CSV или Excel со столбцами координат в такой набор и отдаёт его одним архивом ZIP.
Как пользоваться
- Выберите или перетащите файл. Для CSV и Excel проверьте столбцы широты и долготы.
- Выберите систему координат результата. Для работы в метрах используйте зону UTM; инструмент предлагает зону по положению данных.
- Укажите кодировку. Рекомендуется UTF-8; Windows-1254 нужна только для старых программ, работающих с турецким текстом.
- В таблице соответствия включите или исключите поля и при необходимости поправьте короткие имена.
- Нажмите «Создать shapefile». В архиве будет отдельный слой для каждого типа геометрии и CSV-файл соответствия полей.
Слои и типы геометрии
Shapefile хранит только один тип геометрии, поэтому точки, линии и полигоны записываются в разные слои (имя_points, имя_lines, имя_polygons). Составные геометрии MultiLineString и MultiPolygon сохраняются как одна запись из нескольких частей; MultiPoint попадает в отдельный слой мультиточек. Каждый элемент GeometryCollection добавляется в слой своего типа с теми же атрибутами.
Если у координат есть высота (Z), используются типы PointZ, PolyLineZ и PolygonZ. В KML высота часто записана как 0, поэтому, если все значения Z нулевые, слои по умолчанию записываются в 2D. Кольца полигонов упорядочиваются по правилу формата: внешнее кольцо по часовой стрелке, внутренние (дыры) против часовой. Некоторые программы неверно читают кольца с обратным порядком.
Имена полей и типы атрибутов
Формат DBF ограничивает имя поля 10 символами. Инструмент переводит имена в латиницу (ж становится zh, ш становится sh), заменяет пробелы и спецсимволы подчёркиванием и добавляет суффиксы _1, _2, если сокращённые имена совпадают. Исходные и новые имена видны в таблице соответствия и записываются в CSV-файл в архиве, поэтому получатель данных всегда может сопоставить столбцы.
Тип поля определяется по значениям: только числа дают числовое поле (N), только даты дают поле даты (D), значения «истина/ложь» дают логическое поле (L), всё остальное становится текстом (C). Коды со значимыми ведущими нулями, например «007», остаются текстом. Тип даты в DBF не хранит время, поэтому значения с датой и временем записываются как текст. Текстовое поле вмещает не более 254 байт; более длинные значения обрезаются и отмечаются в таблице. В UTF-8 кириллическая буква занимает два байта, поэтому в символах предел наступает примерно вдвое раньше.
Кодировка: UTF-8 или Windows-1254
При выборе UTF-8 текст записывается в UTF-8, а файл .cpg содержит «UTF-8»; современные ГИС-программы читают этот файл и правильно показывают кириллицу. Вариант Windows-1254 предназначен для старых программ, работающих с турецкими данными и не учитывающих .cpg: текст записывается в турецкой кодовой странице Windows, байт драйвера языка в заголовке DBF указывает на неё, а в .cpg записывается «1254». Кириллических букв в этой кодовой странице нет, они заменяются вопросительными знаками, и инструмент об этом предупреждает. Для русских данных всегда выбирайте UTF-8.
Системы координат и файл .prj
Координаты пересчитываются библиотекой proj4js, а файл .prj записывается в формате Esri WKT: GCS_WGS_1984 для WGS 84, имена вида WGS_1984_UTM_Zone_37N для UTM, TUREF_TM30 и аналогичные для турецких зон 3° TM, WGS_1984_Web_Mercator_Auxiliary_Sphere для Web Mercator. Им соответствуют коды EPSG:4326, 326xx и 327xx, 5253-5259 и 3857. Web Mercator предназначен для отображения, измерять в нём нельзя. Если в GeoJSON есть устаревший элемент crs (например, EPSG:32637), инструмент берёт исходную систему из него.
Данные и метод
Запись shapefile и DBF выполняет собственный код этой страницы, написанный по техническому описанию формата от Esri. KML и GPX читаются библиотекой @tmcw/togeojson 5.8.0 (BSD-2-Clause), KMZ открывается и архив создаётся с помощью JSZip 3.10.1 (MIT), CSV читается Papa Parse 5.4.1 (MIT), Excel библиотекой SheetJS 0.18.5 (Apache-2.0), координаты пересчитываются proj4js 2.9.0 (MIT). Подложки карты принадлежат участникам OpenStreetMap и Esri. Используемые библиотеки с открытым исходным кодом и их лицензии: Источники данных.
Ограничения
- Файл DBF вмещает не более 255 полей; лишние не записываются.
- Числовое поле шириной не более 19 знаков; очень большие числа записываются как текст.
- Стили KML (цвет, значок, толщина линии) не переносятся: формат не хранит оформление.
Для крупных проектов
Если вам регулярно нужно переносить чертежи CAD и данные в разных форматах в базу ГИС с сохранением структуры слоёв и атрибутов, о нашей работе можно узнать на сайте Rodosto Teknoloji или связаться с нами через страницу контактов (на английском).
Часто задаваемые вопросы
Почему кириллица в shapefile отображается нечитаемыми символами?
Если программа не читает файл .cpg, она показывает текст UTF-8 в другой кодовой странице. Проверьте, что файл .cpg называется так же, как .dbf, и лежит в той же папке. Оставляйте кодировку UTF-8: в Windows-1254 кириллических букв нет.
Почему при конвертации KML в shapefile получается несколько слоёв?
Shapefile может содержать только один тип геометрии. В KML точки, линии и полигоны могут быть вместе, поэтому каждый тип записывается в отдельный слой. Все слои находятся в одном архиве ZIP.
Почему сократились имена полей?
Формат DBF ограничивает имя поля 10 символами. Инструмент сокращает имена, переводит кириллицу в латиницу и нумерует совпадающие имена. Исходные и новые имена показаны в таблице соответствия и записаны в CSV-файл внутри архива.
Какую систему координат выбрать?
Выбирайте систему, которую требует получатель данных. Для измерений в метрах подходит зона UTM, в которую попадают данные. Если данные нужны только для веб-карты или будут перепроецированы в другой программе, достаточно WGS 84.
Загружаются ли мои файлы на сервер?
Нет. Чтение файла, пересчёт координат и запись shapefile выполняются в браузере. По сети загружаются только тайлы OpenStreetMap и Esri для карты предпросмотра, и эти запросы не содержат данных из вашего файла.