Как сделать Zoom to Selected Features?

0 голосов
спросил 19 Март, 07 от vig11 (2,220 баллов) в категории Программные продукты Esri
Как сделать Zoom to Selected Features? Мне нужно сделать это програмно, и желательно в С#. В Help-е нашёл как сделать на VB, но на С# почему-то не работает, да и в Help-e на VB Есть неясности. Вот как они предлагают сделать это на VB:
 

Dim pMapServer as IMapServer
Dim pMapDesc as IMapDescription

Dim lLayerID As Long
lLayerID = 0
Dim strMapName As String
strMapName = pMapDesc.Name
   
'Select features
Dim pFilter As IQueryFilter
Set pFilter = New QueryFilter
pFilter.WhereClause = "Name = 'Halifax' or Name = 'Alma'"
Dim pFIDSet As IFIDSet
Set pFIDSet = pMapServer.QueryFeatureIDs(strMapName, lLayerID, pFilter)
   
'Zoom to selected features
Dim pFeatExt As IFeatureExtent
Set pFeatExt = New FeatureExtent
'following line of code is not needed in this case because we zoom to more than 1 point
'pFeatExt.DefaultScale = 300000
pFeatExt.ExpandRatio = 1.2
pFeatExt.FeatureIDs = pFIDSet
pFeatExt.layerID = lLayerID
pFeatExt.MapName = strMapName

'Assign new FeatureExtent object to MapDescription
pMapDesc.MapArea = pFeatExt

1 Ответ

0 голосов
ответил 22 Март, 07 от gorxgor (340 баллов)
Можно примерно так: // Получаем выделенные фичи IEnumFeature enumFeature = (IEnumFeature)axMapControl.Map.FeatureSelection; // Первая фича из выделения IFeature feature = enumFeature.Next(); // Если хотя-бы одна фича выделена if (feature != null)

{

// *** Расчитываем будущую видимую область для карты

// *** В результате получаем прямоугольник, описывающий все контура выделенных фичей

// Прямоугольник - видимая область

IEnvelope featuresExtent = feature.Extent;

// Цикл по выделенным фичам

while (feature != null)

{

// Добавляем к выделенной области текущую фичу

featuresExtent.Union(feature.Extent);

// Получаем следующую фичу из выделения

feature = enumFeature.Next();

}

// Расширяем полученную область

featuresExtent.Expand(1.5, 1.5, true);

// Задаем видимую область карты

axMapControl.Extent = featuresExtent;

}

Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...