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

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

Добавлено: 31 дек 2014, 09:51
Tereha
Уважаемые Гуру!
Решал эту задачу так.
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?

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

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

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

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

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

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

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

Добавлено: 03 янв 2015, 22:13
novia
динамический слой сам по себе это картинка, но он умеет отвечать за напросы query, identify и find с возвратом объектов типа graphic, с пустой или заполненной геометрией.

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

Добавлено: 04 янв 2015, 08:34
Tereha
Спасибо, ясно-понятно)