Пример точки шейп-файла OGR C#

Я следую этому примеру кода, который (согласно моему пониманию) создает шейп-файл с точечным слоем и добавляет точку в координатах (47 и 19.2). Когда я запускаю этот код, он создает шейп-файл (все три файла с расширениями.dbf, .shp и.shx). Однако, когда я открываю полученный файл.shp в QGIS, я не вижу никакой точки в данных координатах. Это то, что я пробовал до сих пор.

1) Проблема может быть либо в коде, либо в QGIS. Для QGIS я попытался написать код на C++, и получившиеся шейп-файлы отображаются правильно. Кроме того, я скачал из интернета различные шейп-файлы и успешно визуализировал их в QGIS.

2) Для примера кода после создания шейп-файлов код считывает элементы в них и отображает их (методы слоя отчета / объекта отчета). Эти функции выводят точку в координатах 47 и 19.2, что заставляет меня думать, что код работает нормально.

Я не могу точно определить, что я делаю неправильно. Я хочу визуализировать точку в QGIS. Любая помощь приветствуется.

2 ответа

Если у вас есть только 3 файла, это означает, что пространственная привязка не определена, и когда вы открываете ее с помощью QG, возможно, используется система пространственной привязки по умолчанию, позволяющая увидеть точки в хорошем месте. Если вы используете таблицу атрибутов в QGI, вы что-то видите?

Поскольку QGIS скомпилирован с библиотекой OGR и использует ее в качестве источника векторных данных, любой действительный шейп-файл, созданный с помощью OGR, должен работать с QGIS.

Чтобы проверить, генерирует ли ваш код правильный шейп-файл, попробуйте ogrinfo.exe, входящий в любой дистрибутив Windows GDAL/OGR.

ogrinfo.exe -al file.shp

где переключатель "-al" выведет список всех объектов всех слоев (в вашем случае один точечный объект в одном слое).

После проверки правильности вашего шейп-файла откройте его в QGIS, выберите созданный вами слой и откройте соответствующую таблицу атрибутов. Вы должны увидеть запись, соответствующую точке, которую вы создали.

После этого, если вы не видите свою точку, попробуйте изменить символы вашего слоя, открыв его Свойства слоя.

Наконец, щелкните правой кнопкой мыши на слое в списке слоев и нажмите "Zoom to layer".

Другие вопросы по тегам