Как выставить базовый масштаб

0 голосов
спросил 23 Июнь, 06 от assa (840 баллов) в категории Программные продукты Esri
Програмно загружаю слои с аркмапа в  mapcontrol.В аркмапе установлен базовый масштаб.Соответственно надписи масштабированные под аркмап неправильно масштабируются в mapcontrol.Как мне выставить базовый масштаб в mapcontrol и как сделать програмно чтоб при масштабе меньше какого то слой не отображался.

3 Ответы

0 голосов
ответил 17 Авг, 06 от Ulukbek (6,020 баллов)
Sub SetMapScale(MapDisp As MapObjects2.map, NewScale As Long)
   '------------------------ Ul.MK -------------------  03.11.2005 17:18:38
   Const INCH2FEET = 12
   Const INCH2METERS = 39.37
   Const INCH2DEGREES = 4322893.46
   
   Dim mapExtentWidth As Double
   Dim convFactor As Double, rect As MapObjects2.Rectangle, k As Double

   If MapDisp.Layers.Count = 0 Then Exit Sub
   convFactor = INCH2METERS
  
   mapExtentWidth = ((NewScale / KK) * MapDisp.Width) / (convFactor * 1440)
   Set rect = MapDisp.Extent
   k = mapExtentWidth / rect.Width
   rect.ScaleRectangle k
   MapDisp.Extent = rect
   'MapDisp.Refresh
End Sub

Private Sub Map1_BeforeLayerDraw(ByVal Index As Integer, ByVal hdc As stdole.OLE_HANDLE)
   Dim b As Boolean
   On Error Resume Next
   mScale = MapScale(Map1)
   b = mScale < 100000
   If Not Map1.Layers("grey") Is Nothing Then Map1.Layers("grey").Visible    If Not Map1.Layers("streets") Is Nothing Then Map1.Layers("streets").Visible = (mScale < 50000)
   On Error GoTo 0
End Sub
0 голосов
ответил 19 Апр, 07 от Merlin (220 баллов)
:) Из примера не понятно чему равен коэффициент KK.

Хочу перевести этот код на C#
0 голосов
ответил 20 Апр, 07 от assa (840 баллов)

какая у тя задача?Потому что когда  решал свою задачу, я просто подогнал массштаб и обошелся без этих кодов.Там есть метод  типа scale,посмотри его.

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