как изменить размер объекта на карте на python
-
- Участник
- Сообщения: 55
- Зарегистрирован: 11 фев 2016, 23:52
- Репутация: 0
как изменить размер объекта на карте на python
Здравствуйте, не могу найти, как изменить размер и цвет объекта на слое (точки) с помощью питона.
Какой метод использовать для задания этого?
Какой метод использовать для задания этого?
-
- Активный участник
- Сообщения: 163
- Зарегистрирован: 28 июн 2012, 01:02
- Репутация: 84
- Откуда: Vladivostok
Re: как изменить размер объекта на карте на python
А программное обеспечение, в котором вы слой настраиваете с помощью python, предлагается угадать?
-
- Участник
- Сообщения: 55
- Зарегистрирован: 11 фев 2016, 23:52
- Репутация: 0
Re: как изменить размер объекта на карте на python
пишу приложение с использованием библиотеки qgis.gui, qgis.core и PyQt4.
векторный слой - shp-файл, созданный в Qgis. Провайдер "ogr". Что еще необходимо?) Слой типа points
векторный слой - shp-файл, созданный в Qgis. Провайдер "ogr". Что еще необходимо?) Слой типа points
-
- Участник
- Сообщения: 55
- Зарегистрирован: 11 фев 2016, 23:52
- Репутация: 0
Re: как изменить размер объекта на карте на python
пишу приложение с использованием библиотеки qgis.gui, qgis.core и PyQt4.doujin писал(а):А программное обеспечение, в котором вы слой настраиваете с помощью python, предлагается угадать?
векторный слой - shp-файл, созданный в Qgis. Провайдер "ogr". Что еще необходимо?) Слой типа points
-
- Активный участник
- Сообщения: 163
- Зарегистрирован: 28 июн 2012, 01:02
- Репутация: 84
- Откуда: Vladivostok
Re: как изменить размер объекта на карте на python
А в документации смотрели? Или не это ищите? Appearance symbology of vector layer.
-
- Участник
- Сообщения: 55
- Зарегистрирован: 11 фев 2016, 23:52
- Репутация: 0
Re: как изменить размер объекта на карте на python
Благодарю, посмотрел.
Только не все понятно.
Там можно еще какие-то свои классы создавать изменения и создания элементов
не совсем понял как они работают и что с ними можно делать. И смутило название)) Foo...
не могли бы пояснить что они делают?)
Мне надо будет менять цвет и размер точки на слое по её id, добавлять и удалять точки. Упростять тогда они мне жизнь или это для другого?
прошу прощения, что отвлекаю)
Только не все понятно.
Там можно еще какие-то свои классы создавать изменения и создания элементов
Код: Выделить всё
class FooSymbolLayerWidget(QgsSymbolLayerV2Widget)
class FooSymbolLayerMetadata(QgsSymbolLayerV2AbstractMetadata)
class FooSymbolLayer(QgsMarkerSymbolLayerV2)
не могли бы пояснить что они делают?)
Мне надо будет менять цвет и размер точки на слое по её id, добавлять и удалять точки. Упростять тогда они мне жизнь или это для другого?
прошу прощения, что отвлекаю)
-
- Участник
- Сообщения: 55
- Зарегистрирован: 11 фев 2016, 23:52
- Репутация: 0
Re: как изменить размер объекта на карте на python
И я не до конца понял как изменить цвет маркета и его размер.
Пробовал использовать
но тогда изменяются все точки на слое
Надо вводить разные маркеры на слое и если да, то как? не могли бы дать ссылочку именно на это?)
Пробовал использовать
Код: Выделить всё
# You can alter a single property...
layer.rendererV2().symbol().symbolLayer(0).setName('square')
# ... but not all properties are accessible from methods,
# you can also replace the symbol completely:
props = layer.rendererV2().symbol().symbolLayer(0).properties()
props['color'] = 'yellow'
props['name'] = 'square'
layer.rendererV2().setSymbol(QgsMarkerSymbolV2.createSimple(props))
Надо вводить разные маркеры на слое и если да, то как? не могли бы дать ссылочку именно на это?)
-
- Гуру
- Сообщения: 1195
- Зарегистрирован: 23 апр 2011, 10:32
- Репутация: 205
- Откуда: Ульяновск
Re: как изменить размер объекта на карте на python
Так вы же меняете стиль, а если этим стилем отрисовываются все маркеры, то логично что все они и поменяются.
Так что создайте второй стиль, который будет отвечать только за нужные вам маркеры (по атрибуту каком-нибудь у точки) и вот его уже меняйте.
Так что создайте второй стиль, который будет отвечать только за нужные вам маркеры (по атрибуту каком-нибудь у точки) и вот его уже меняйте.
-
- Участник
- Сообщения: 55
- Зарегистрирован: 11 фев 2016, 23:52
- Репутация: 0
Re: как изменить размер объекта на карте на python
что то я так и не разобрался как это делается... Создать стиль я вроде создал в редакторе Qgis, задал тип Categorized и насоздавал там разных. Это и есть стили?
А вот как изменить стиль нужного мне объекта - не понял.. Не могли бы помочь?....
А вот как изменить стиль нужного мне объекта - не понял.. Не могли бы помочь?....
-
- Участник
- Сообщения: 55
- Зарегистрирован: 11 фев 2016, 23:52
- Репутация: 0
Re: как изменить размер объекта на карте на python
вроде разобрался)) благодарю)
-
- Участник
- Сообщения: 55
- Зарегистрирован: 11 фев 2016, 23:52
- Репутация: 0
Re: как изменить размер объекта на карте на python
оказывается не до конца))
я выбрал Categorized для слоя. я так понял по значению поля в таблице атрибутов он задает соответствующий маркер. Вот только вопрос,
1) я пробую изменить занчение атрибутов у объекта вызывая
и после этого я проверяю и атрибуты не изменились у объекта....
2) если они изменяться, поменяется ли сразу маркер объекта на карте, или нужны еще какие-то манипуляции?
буду признателен за помощь
я выбрал Categorized для слоя. я так понял по значению поля в таблице атрибутов он задает соответствующий маркер. Вот только вопрос,
1) я пробую изменить занчение атрибутов у объекта вызывая
Код: Выделить всё
for feat in layer.getFeatures():
if feat.id() == feature_id:
attrs = feat.attributes()
attrs_as_dict = dict(id=attrs[0], line=attrs[1], status=new_status, name=attrs[3]) # переписываю значения в словарь для дополнения
break
if caps & QgsVectorDataProvider.ChangeAttributeValues:
tmp = layer.dataProvider()
res = tmp.changeAttributeValues({feature_id: attrs_as_dict})
# появляется ошибка ERROR 1: Invalid index : -1
layer.updateExtents()
2) если они изменяться, поменяется ли сразу маркер объекта на карте, или нужны еще какие-то манипуляции?
буду признателен за помощь
-
- Участник
- Сообщения: 55
- Зарегистрирован: 11 фев 2016, 23:52
- Репутация: 0
Re: как изменить размер объекта на карте на python
достаточно ли понятно описал проблему?))
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 13 гостей