Не понимаю как задать mapscale
-
- Новоприбывший
- Сообщения: 5
- Зарегистрирован: 18 июл 2011, 12:22
- Репутация: 0
Не понимаю как задать mapscale
Добрый день, пытаюсь писать с использованием ArcObjects и затрудняюсь в понимании изменения масштаба. Нужно к примеру выставить для отображения 1:10000. Опытным путем выяснил что реально в IMap.MapScale лежат величины менее нуля. На буржуйских форумах часто шлют сюда - http://resources.esri.com/help/9.3/arcg ... ic380.html. Но честно, это не добавило мне ума. Может кто подкинет другую полезную ссылочку или разъяснит иначе???
-
- Активный участник
- Сообщения: 194
- Зарегистрирован: 08 фев 2007, 23:29
- Репутация: 1
- Откуда: Симферополь
- Контактная информация:
Re: Не понимаю как задать mapscale
Меньше нуля, наверное потому, что вы не указали свойство IMap.MapUnits. Чтобы задать масштаб отображения объектов используйте IMap.MapScale, а если нужно задать масштаб отображения условных обозначений (отличный от масштаба вида), то IMap.ReferenceScale
-
- Новоприбывший
- Сообщения: 5
- Зарегистрирован: 18 июл 2011, 12:22
- Репутация: 0
Re: Не понимаю как задать mapscale
Загружаю shp-файл, делаю проверку масштаба, получаю MapScale = 0,144605232549057, MapUnits = esriMeters. Т.е. тулбоксом понятно могу менять масштаб, а программным методом просто не пойму что туда писать.
-
- Активный участник
- Сообщения: 194
- Зарегистрирован: 08 фев 2007, 23:29
- Репутация: 1
- Откуда: Симферополь
- Контактная информация:
Re: Не понимаю как задать mapscale
Когда вы добавляете слой в IMap, MapUnits автоматически берутся из его проекции если до этого они были esriUnknownUnits. Короче, чтобы установить MapScale сначала установите MapUnits=esriMeters
Как это вы программным образом не можете туда писать мы же говорим о интерфейсе ESRI.ArcGIS.Carto.IMap?
http://help.arcgis.com/en/sdk/10.0/arco ... 0803000000
Как это вы программным образом не можете туда писать мы же говорим о интерфейсе ESRI.ArcGIS.Carto.IMap?
http://help.arcgis.com/en/sdk/10.0/arco ... 0803000000
-
- Новоприбывший
- Сообщения: 5
- Зарегистрирован: 18 июл 2011, 12:22
- Репутация: 0
Re: Не понимаю как задать mapscale
Вот по всей видимости после добавления слоя MapUnits правильно инициализируется. В метрах, но MapScale - меньше нуля (мы говорим о ESRI.ArcGIS.Carto.IMap). Писать я туда конечно могу, но писать на угад.
-
- Активный участник
- Сообщения: 194
- Зарегистрирован: 08 фев 2007, 23:29
- Репутация: 1
- Откуда: Симферополь
- Контактная информация:
Re: Не понимаю как задать mapscale
Не знаю, у меня в ArcMap IMap.MapScale возвращает тот масштаб который отображается в ArcMap.
В чем проблема? Установите туда значение, которое Вам нужно. Если Вы не видите своих объектов, значит нужно сначала установить установить IMap.Extent на один из объектов, а потом уже задавать масштаб
В чем проблема? Установите туда значение, которое Вам нужно. Если Вы не видите своих объектов, значит нужно сначала установить установить IMap.Extent на один из объектов, а потом уже задавать масштаб
-
- Новоприбывший
- Сообщения: 5
- Зарегистрирован: 18 июл 2011, 12:22
- Репутация: 0
Re: Не понимаю как задать mapscale
У меня стоит engine 9.3, пишу на C++, после добавления слоя проверяю MapUnits - если не определено, пишу туда метры. Опытным путем выяснил что MapScale = 1 - очень далеко, 0.01 - очень близко, но хотелось бы иметь адекватное представление масштаба, на пример - 1:10000. Может у меня шейп какой-то хитрый грузится. Я вообще новичек в этом деле, какой дали файл, с таким тренируюсь. До этого писал использую engine Панорамы для их карты, там сходу все пошло.
-
- Новоприбывший
- Сообщения: 5
- Зарегистрирован: 18 июл 2011, 12:22
- Репутация: 0
Re: Не понимаю как задать mapscale
Вопрос снимаю, мои шейп-файлы были не привязаны к системе координат, спасибо за помощь!
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 7 гостей