Страница 2 из 2
Re: Преобразование линий в точки
Добавлено: 18 май 2012, 10:02
KartaBY
Спасибо.
Преобразовал в LineString. Получил точечный файл с помощью выше указанного кода, но без исходных атрибутов. (
Если вас не затруднит, сделайте пожалуйста и перенос атрибутов в выше указанном коде.
ps. Вопрос вдогонку. Как можно проверить шейп на наличие в нем MultiLinestring?
Re: Преобразование линий в точки
Добавлено: 18 май 2012, 16:23
Voltron
KartaBY писал(а):Если вас не затруднит, сделайте пожалуйста и перенос атрибутов в выше указанном коде.

А самостоятельно попробовать не хотите?
Код: Выделить всё
from qgis.core import *
layer = qgis.utils.iface.mapCanvas().currentLayer()
vl = QgsVectorLayer("Point", "temporary_points", "memory")
pr = vl.dataProvider()
pr.addAttributes(layer.dataProvider().fields().values())
vl.updateFieldMap()
layer.select(layer.dataProvider().attributeIndexes())
ft = QgsFeature()
while layer.nextFeature(ft):
tmp = ft.geometry().asPolyline()
x = (tmp[0].x() + tmp[1].x())/2.0
y = (tmp[0].y() + tmp[1].y())/2.0
f = QgsFeature()
f.setGeometry(QgsGeometry.fromPoint(QgsPoint(x, y)))
f.setAttributeMap(ft.attributeMap())
pr.addFeatures([f])
QgsMapLayerRegistry.instance().addMapLayer( vl )
KartaBY писал(а):ps. Вопрос вдогонку. Как можно проверить шейп на наличие в нем MultiLinestring?
Зависит от. Можно из консоли Python QGIS, можно спец. утилитами при их наличии.
Re: Преобразование линий в точки
Добавлено: 20 май 2012, 22:49
Александр Мурый
Сделал точки в GRASS, посмотрите, пойдёт или нет.
Re: Преобразование линий в точки
Добавлено: 22 май 2012, 13:53
KartaBY
Всем спасибо большое за оказанную помощь.
Re: Преобразование линий в точки
Добавлено: 22 май 2012, 14:05
Voltron
Если ваша проблема решена, пожалуйста отметьте это, отредактировав первое сообщение (
п. 4.1)
Re: Преобразование линий в точки
Добавлено: 11 авг 2014, 09:35
tsatsara
Спасибо за помощь, точно такая же проблема - была) Ура)