Я наткнулся на ваш вопрос, пытаясь сделать то же самое, вот как я это сделал:
Используемое программное обеспечение:
- Inkscape
- QGIS 2.2
- Плагин Affine Transformation для QGIS
Извлечение векторных данных из PDF
Это то, что вы уже сделали, в основном просто откройте PDF в Inkscape, найдите нужные фигуры и удалите все фоны и окружающий текст. Сохранить как файл .dxf .
Привязка векторного файла
Для работы с векторным файлом нам нужно преобразовать его в шейп-файл ESRI с помощью QGIS.
Откройте QGIS и добавьте файл dxf в качестве растрового слоя, выберите зону 3 DHDN / Гаусса-Крюгера (EPSG: 31467) в качестве системы координат. Щелкните правой кнопкой мыши по слою, сохраните как ESRI Shapefile. Откройте этот шейп-файл как растровый слой и удалите другой.
Теперь у вас есть Münsters Wahlbezirke где-то в координатах 0, 0.
Чтобы перевести (переместить) и изменить размер вектора в нужном месте, нам нужно выяснить координаты и размер цели. Короче говоря, у меня был еще один GeoJSON из Wahlbezirke, который был с географической привязкой, но не настолько подробным, поэтому я использовал его для расчета следующих данных:
- Цель х, у
- Соотношение размеров между только что извлеченным вектором и целевым размером (используя xMin, xMax и yMin, yMax (извлеченные из метаданных слоя в QGIS), чтобы получить размеры в направлении x и y для обоих слоев, а затем вычислить соотношение в направлении x и y)
В моем случае это примерно:
target x 3406388
target y 5745290
yratio 118,539696
xratio 118,637678
Включите режим редактирования (значок «Карандаш») на своем слое и вставьте эти числа в плагин «Аффинное преобразование» («Вектор меню», «Инструменты геообработки», «Аффинный»), выберите «Весь слой»:
Нажмите трансформацию, отключите режим редактирования (и сохраните), и вы получите полностью желтый слой примерно на вашей цели. Я никогда не понимал, как удалить желтый цвет, поэтому я удаляю и снова добавляю слой для лучшей видимости.
Вы можете получить представление, похожее на это, где ваш растровый слой очень мал (обведен красным), увеличьте масштаб:
(Возможно, я пропустил настройку здесь, я не уверен, что вызывает такое поведение. "Zoom до уровня "не помогает.)
Добавьте слой, который уже имеет географическую привязку, вы можете использовать слой OpenStreetMap (через расширение OpenLayers), NRW WMS или аналогичный. Ваш вектор еще не находится в правильном положении, поэтому переместите его, включив режим редактирования, а затем используйте инструмент «Перемещение объектов».
Теперь мы сделали слой полилиний, последний шаг - сделать полигоны из этих линий. Я не собираюсь объяснять это здесь, читайте здесь для получения дополнительной информации:
Смотрите результат здесь .