Подскажите как можно преобразовать линию в точку?
Существующий инструмент "извлечение узлов" создает точки на концах линии, а мне надо создать одну точку на центре линии.

Спасибо.
Геоинформационные системы (ГИС) и Дистанционное зондирование Земли
Поделить длину линии пополам и отступить это расстояние вдоль линии от одной из конечных точек?Voltron писал(а): Если же у вас ломанные, то не совсем понятно как вы собрались находить «центр линии».
Тогда уж скорее центр bbox'а брать, т.к длина линии может превышать расстояние между крайними точками.amuriy писал(а):Поделить длину линии пополам и отступить это расстояние вдоль линии от одной из конечных точек?
даVoltron писал(а):У вас все линии содержат только по 2 узла и прямые?
Школьный курс говорит как найти середину отрезка. Внезапно.KartaBY писал(а):ps. Школьный курс геометрии не говорит как этот процесс сделать в QGIS
Две минуты, включая набор и проверку на тестовом слоеKartaBY писал(а):а в ручную 150000 линий я буду до второго пришествия преобразовывать.
Код: Выделить всё
from qgis.core import *
layer = qgis.utils.iface.mapCanvas().currentLayer()
vl = QgsVectorLayer("Point", "temporary_points", "memory")
pr = vl.dataProvider()
layer.select()
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)))
pr.addFeatures([f])
QgsMapLayerRegistry.instance().addMapLayer( vl )
Вот для примера один из кусков.amuriy писал(а):KartaBY, если возможно выложить куда-то данные, могу помочь с точками (в GRASS). В QGIS без спец. программирования вы это не сделаете, как я понял.
Спасибо что уделили время для моей проблемы,Voltron писал(а): Две минуты, включая набор и проверку на тестовом слое
Да, проблема в исходных данных. У вас в слое часть объектов имеет тип LineString, а часть — MultiLinestring. Прогоните слой через Multipart to singleparts и будем вам счастьеKartaBY писал(а):Выше приложен пример моих шейпов, может дело в нем?
Сейчас этот форум просматривают: Semrush [Bot] и 4 гостя
© GIS-Lab и авторы, 2002-2017. При использовании материалов сайта, ссылка на GIS-Lab и авторов обязательна. Содержание материалов - ответственность авторов (подробнее).