Страница 1 из 1

Получение информации о выбранных объектах

Добавлено: 01 апр 2016, 16:46
Роза
Необходимо получить информацию (либо координаты, либо идентификаторы) о выделенных на карте объектах. Как это сделать? скорее всего какой-то скрипт на Python.

Re: Получение информации о выбранных объектах

Добавлено: 01 апр 2016, 16:54
Эдуард Казаков
Какова дальнейшая задача? Так-то можно обойтись таблицей атрибутов. Там есть кнопка "скопировать выделенные объекты", при вставке в какой-нибудь open office calc получите и атрибуты, и координаты.
Если слоёв много и дальше нужно что-то со всем этим делать автоматически, то тогда Python.

Re: Получение информации о выбранных объектах

Добавлено: 01 апр 2016, 17:10
Роза
Объекты выделяются в одном слое. Для каждого выделенного объекта надо, используя данные из таблицы атрибутов, запустить скрипт python. Или, как вариант, изменить флаг(поле) в таблице атрибутов. А уже другая программа будет отслеживать изменение флага в таблице и выполнять свои задачи. Кратко суть задачи в следующем: выделяются дома и по ip-никам, хранящимся в таблице атрибутов надо посылать запросы к серверам, расположенным по этим домам (по их ip).

Re: Получение информации о выбранных объектах

Добавлено: 01 апр 2016, 23:09
Elf
github

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

# -*- coding: utf-8 -*-

'''
Для активного слоя создается новое поле "fieldname".
Для каждого выделенного объекта слоя в поле "fieldname"
записывается единица.
'''

from qgis.core import *
from qgis.utils import *
from PyQt4.QtCore import *

layer = iface.activeLayer()

# если нужно создать новое поле:
layer.dataProvider().addAttributes([QgsField("fieldname", QVariant.Int)])

layer.startEditing()

selection = layer.selectedFeatures()

for feature in selection:
#запись в поле 'fieldname' значения 1
feature['fieldname'] = 1
layer.updateFeature(feature)

layer.commitChanges()

Re: Получение информации о выбранных объектах

Добавлено: 05 апр 2016, 10:05
Роза
спасибо, попробую воспользоваться

Re: Получение информации о выбранных объектах

Добавлено: 27 июн 2016, 07:09
evgeshka
спасибо за подсказку, слой создался. но вместо точки он считает его линией(для моей конкретной задачи нужна точка) как это исправить?