Официальный сайт геоинформационной системы (ГИС) ObjectLandОфициальный сайт геоинформационной системы (ГИС) ObjectLand
  
 
ПОИСК ПО САЙТУ:
yandex.ru
КАРТА САЙТА
 
главная / поддержка / форум
E-MAIL:ПАРОЛЬ: 
регистрация

Обсуждение

 Обращение к элементу картыОбращение к элементу карты [ Roman ]
Четверг, 15 ноября 2007, 17:35

Добрый день!
Работаем над приложением, взаимодействующим с ObjectLand через COM-интерфейс.
Возник вопрос: как осущесвить вывод карты, либо отдельных графических элементов (полигонов) на панель(либо форму и т.д.). Каким образом можно к ним обратиться.
Подобных пунктов в архиве с примерами, к сожалению, разобрано не было.
Буду признателен за любую помощь.
(Используем язык c#, но это не принципиально.)

 Обращение к элементу карты [ ObjectLand Support ]
Четверг, 15 ноября 2007, 17:49

Вы смотрели демонстрационное приложение "ObjectLand Explorer"?

Это, практически, клон интерфейса ObjectLand через COM(без редактирования). Доступны все исходные коды, правда на VB.NET и VB6. Вы можете использовать эти исходные коды для любых своих нужд.


 Обращение к элементу карты [ Roman ]
Четверг, 15 ноября 2007, 21:01

Да, разумеется, я смотрел исходные коды этого приложения.
Но в нем содержится члишком большой объем кода, в котором довольно сложно разобраться, хоть он и хорошо закомментирован..
Мне так и не удалось докапаться до нужных мне объектов.
Поэтому и обратился на форум.
Может несколько строчек кода? (на vb, к примеру)
Или укажете в каком направлении копать в "ObjectLand Explorer"?

 Обращение к элементу карты [ ObjectLand Support ]
Пятница, 16 ноября 2007, 12:04

Для вывода карты, темы или отдельных элементов можно использовать COM-объект ThemeBrowser. Ниже приведен фрагмент кода встраивания ThemeBrowser-a в форму на Visual Basic .Net:

sOpenFileName = "C:\Documents and Settings\All Users\Application Data\ObjectLand\DEMO\City.gdb"
'sOpenFileName = OpenFileModule.FileDialog
'If (sOpenFileName = "") Then Return
Me.Text = sOpenFileName
If (sOpenFileName <> "") And (Mid(sOpenFileName, Len(sOpenFileName) - 3, Len(sOpenFileName)) = ".gdb") Then
OL = CreateObject("GDBEngine.Application")
GDB = OL.OpenGDB(Mid(sOpenFileName, 1, Len(sOpenFileName) - 4), 0, "", "", "")
view = GDB.Themes.Item(1)
'map = GDB.Maps.Item(1)
ThemeBrowser = OL.CreateThemeBrowser(view)
ThemeBrowser.SetVisibility(GDBEngineLib.GdbBrowserElements.gdbBrowserElementCaption, "", False)
ThemeBrowser.SetVisibility(GDBEngineLib.GdbBrowserElements.gdbBrowserElementMenu, "", False)
ThemeBrowser.SetVisibility(GDBEngineLib.GdbBrowserElements.gdbBrowserElementToolBox, "common", False)
ThemeBrowser.SetVisibility(GDBEngineLib.GdbBrowserElements.gdbBrowserElementToolBox, "modes", True)
ThemeBrowser.SetVisibility(GDBEngineLib.GdbBrowserElements.gdbBrowserElementInfoBar, "", True)
ThemeBrowser.SetVisibility(GDBEngineLib.GdbBrowserElements.gdbBrowserElementStatusBar, "", False)
ThemeBrowser.ParentWindowHandle = Me.Handle
ThemeBrowser.Visible = True
ThemeBrowser.SetPosition(1, BtnOpen.Top + BtnOpen.Height + 4)
ThemeBrowser.SetSize(Me.ClientRectangle.Width - 2, Me.ClientRectangle.Height - (BtnOpen.Top + BtnOpen.Height + 4))
'Form1_Resize(eventSender, eventArgs)
'Button1_Click(eventSender, eventArgs)
ThemeBrowser.FixedSize = True
ThemeBrowser.AutoUpdate = True
nestedBrowser = True
hasBrowser = True

 Обращение к элементу карты [ ObjectLand Support ]
Пятница, 16 ноября 2007, 12:09

Другой вариант вывода можно посмотреть в исходных текстах примера ObjectLand Explorer, посмотрев использование СОМ-объекта ThemePainter.
http://www.objectland.ru/support/doc/comapi/ThemePainter.html

 Обращение к элементу карты [ Roman ]
Пятница, 16 ноября 2007, 12:27

Большое спасибо. Это скорее всего должно нам помочь.

 Обращение к элементу карты [ Максим Трухачёв ]
Вторник, 20 ноября 2007, 19:17

Объект ThemeBrowser надо объявлять с ключевым словом WithEvents, вот так:
Dim WithEvents ThemeBrowser as GDBEngineLib.GDBThemeBrowser
В этом случае пользователю станут доступны все те же кнопки, что и в стандартном окне темы ObjectLand, кроме того, можно будет обрабатывать события, генерируемые объектом ThemeBrowser (они описаны в документации).

Ответить

Знаком «*» отмечены обязательные для заполнения поля.
Ваше имя:  *
Адрес электронной почты:  
Тема:  *
Сообщение:
 *
Подтверждение:
(не требуется для зарегистрированных пользователей)
 *
 



Copyright © 1999–2022 ГИС ObjectLand
ГИС ObjectLand ® ООО «Радом-АйТи»
Информация о лицензировании
главная | о продукте | скачать | купить | поддержка | новости