Преобразование линий в точки

Вопросы по свободной ГИС QGIS. Сообщения об ошибках, предложения по улучшению, локализация.
KartaBY
Активный участник
Сообщения: 101
Зарегистрирован: 16 июл 2011, 09:15
Репутация: 6

Re: Преобразование линий в точки

Сообщение KartaBY » 18 май 2012, 10:02

Спасибо. :D
Преобразовал в LineString. Получил точечный файл с помощью выше указанного кода, но без исходных атрибутов. (
Если вас не затруднит, сделайте пожалуйста и перенос атрибутов в выше указанном коде.
:oops:

ps. Вопрос вдогонку. Как можно проверить шейп на наличие в нем MultiLinestring?

Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: Преобразование линий в точки

Сообщение Voltron » 18 май 2012, 16:23

KartaBY писал(а):Если вас не затруднит, сделайте пожалуйста и перенос атрибутов в выше указанном коде. :oops:
А самостоятельно попробовать не хотите? :-)

Код: Выделить всё

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, можно спец. утилитами при их наличии.

Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 792
Ваше звание: званий не имею
Откуда: Москва

Re: Преобразование линий в точки

Сообщение Александр Мурый » 20 май 2012, 22:49

Сделал точки в GRASS, посмотрите, пойдёт или нет.
N_34_131_LAYER17_txt_CENTERS.zip
(11.35 КБ) 281 скачивание
Редактор материалов, модератор форума

KartaBY
Активный участник
Сообщения: 101
Зарегистрирован: 16 июл 2011, 09:15
Репутация: 6

Re: Преобразование линий в точки

Сообщение KartaBY » 22 май 2012, 13:53

Всем спасибо большое за оказанную помощь.

Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: Преобразование линий в точки

Сообщение Voltron » 22 май 2012, 14:05

Если ваша проблема решена, пожалуйста отметьте это, отредактировав первое сообщение (п. 4.1)

Аватара пользователя
tsatsara
Интересующийся
Сообщения: 41
Зарегистрирован: 30 авг 2011, 12:22
Репутация: 5
Откуда: СПб

Re: Преобразование линий в точки

Сообщение tsatsara » 11 авг 2014, 09:35

Спасибо за помощь, точно такая же проблема - была) Ура)

Ответить

Вернуться в «QGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя