Как подсветить feature на одном из слоев карты

ArcGIS 8.x,9.x,10.x (Arcview, ArcEditor, Arcinfo).
Ответить
Tereha
Завсегдатай
Сообщения: 423
Зарегистрирован: 15 май 2010, 06:13
Репутация: 7

Как подсветить feature на одном из слоев карты

Сообщение Tereha » 31 дек 2014, 09:51

Уважаемые Гуру!
Решал эту задачу так.
xaml:

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

        <esri:Map x:Name="myMap" >
            <esri:ArcGISDynamicMapServiceLayer ID="BaseLayer" 
                            Url="http://localhost:6080/ArcGIS/rest/services/streetRK/MapServer" />
                <esri:FeatureLayer    ID="routes_osm" 
                            Url="http://localhost:6080/ArcGIS/rest/services/streetRK/MapServer/1" >
                </esri:FeatureLayer>
            </esri:Map>
Код:

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

        public void OnLightRoadEvent(string code)
        {
            feature_code = code;
            FeatureLayer featureLayer = myMap.Layers["routes_osm"] as FeatureLayer;
            foreach (Graphic p in featureLayer.Graphics)
            {
                if (p.Attributes["REF"].ToString() == feature_code)
                    p.Selected = true;
                else
                    p.Selected = false;
            }
        }
Как решить эту задачу только с помощью BaseLayer, не используя дополнительный routes_osm?

Monstria
Активный участник
Сообщения: 133
Зарегистрирован: 17 май 2011, 06:22
Репутация: 50
Откуда: Нижний Новгород

Re: Как подсветить feature на одном из слоев карты

Сообщение Monstria » 31 дек 2014, 15:10

Я пишу на VB.NET - если это то что вам нужно -
http://youtu.be/a1dumcfu2E4
Обращайтесь в личку - поделюсь исходным кодом (правда на vb.net :) )

Аватара пользователя
novia
Гуру
Сообщения: 2261
Зарегистрирован: 29 апр 2011, 15:06
Репутация: 489
Откуда: Тель-Авив

Re: Как подсветить feature на одном из слоев карты

Сообщение novia » 31 дек 2014, 16:14

в динамическом сервисе вы можете подсветить объект двумя способами: на сервере, как делает росреестр не отдавая геометрию на клиента, с помощью определяющего запроса к еще одному сервису, который показывает только выбранный объект.
либо можно получить графику для подсветки как результат операций query, find, identify и подсвечивать ее в составе graphicsLayer, добавленного поверх слоя динамического сервиса. тогда можно обойтись без featureLayer.
понравилось? жми палец вверх :!:

Tereha
Завсегдатай
Сообщения: 423
Зарегистрирован: 15 май 2010, 06:13
Репутация: 7

Re: Как подсветить feature на одном из слоев карты

Сообщение Tereha » 01 янв 2015, 11:56

Спасибо. Я поясню над чем я думал.
Я не исключал, что динамический слой содержит множество Graphics для каждого слоя, до которого можно добраться . Иногда нужно приводить объект к нужному типу, чтобы добраться до некоторых свойств.

Аватара пользователя
novia
Гуру
Сообщения: 2261
Зарегистрирован: 29 апр 2011, 15:06
Репутация: 489
Откуда: Тель-Авив

Re: Как подсветить feature на одном из слоев карты

Сообщение novia » 03 янв 2015, 22:13

динамический слой сам по себе это картинка, но он умеет отвечать за напросы query, identify и find с возвратом объектов типа graphic, с пустой или заполненной геометрией.
понравилось? жми палец вверх :!:

Tereha
Завсегдатай
Сообщения: 423
Зарегистрирован: 15 май 2010, 06:13
Репутация: 7

Re: Как подсветить feature на одном из слоев карты

Сообщение Tereha » 04 янв 2015, 08:34

Спасибо, ясно-понятно)

Ответить

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

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

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