Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
КД
Зарегистрирован: 30.10.2007 Сообщения: 25
|
Добавлено: Пт Ноя 02, 2007 6:21 am Заголовок сообщения: Использование ГИС в Access |
|
|
Уважаемые форумчане!
У меня вопрос по использованию ГИС в Access. Есть приложение в Access (форма), с помощью которой можно из базы делать различные заковыристые выборки. Не хватает географической составляющей. Вот что хотелось бы. На этой форме должна выводиться карта, которую можно выбирать. На карте обрисовывать некоторые области, а также выделять по цветовой маске, если это возможно (наверное, каждый цвет должен быть отдельным слоем?) и т.д (буферы и др.). Эти условия учитывать вместе с другими, заданными на форме, и производить выборку записей из базы.
Подскажите, пожалуйста, каким образом мне это сделать? Какие нужны программы? Я правильно думаю, что это может быть MapInfo, а в качестве элемента управления для вывода карты и действий с ней – MapX? |
|
Вернуться к началу |
|
|
Андрей Могильный
Зарегистрирован: 21.03.2006 Сообщения: 864
|
Добавлено: Пт Ноя 02, 2007 8:14 am Заголовок сообщения: |
|
|
Может. Начни с документации по MapInfo и MapBasic (раздел Интегрированная Картография). |
|
Вернуться к началу |
|
|
КД
Зарегистрирован: 30.10.2007 Сообщения: 25
|
Добавлено: Ср Ноя 07, 2007 6:33 am Заголовок сообщения: |
|
|
Да вот начал и сразу меня постигла неудача. Попробовал обойтись только средствами MapInfo и вот этой интегрированной картографией. В приведенных примерах в приложении VB окно MapInfo замечательно переподчиняется окну элемента управления формы приложения. Попробовал повторить – не получается. Пишет – неправильный идентификатор окна (в качестве oleMapInfo выступает объект MapInfo Map):
Private Declare Function GetDC Lib "user32" (ByVal hWnd As Long) As Long
Dim strPathToTable As String
Dim strMapName As String
Dim msg As String
On Error GoTo ErrorHandler
DoCmd.Hourglass True
'задаем путь к таблице и имя таблицы
strPathToTable = "C:\Комаров\Базы данных\"
'в будущем будем выбирать
'strMapName = Me.cboMaps.Column(1)
strMapName = "Точки_сбора.tab"
'сформируем окончательную строку
strCriteria = "Open Table """ & strPathToTable & "" & strMapName & """"
'запускаем MapInfo в фоновом режиме
Set miNewApp = CreateObject("MapInfo.Application")
'захватываем нашей прогой сообщения MapInfo
msg = "Set Application Window " & Me.hWnd
miNewApp.Do msg
'узнаем хэндл ole-объекта
With Me.oleMapInfo
lngHandle = GetDC(hWnd)
'переподчиним окну с этим хэндлом окно MapInfo (почему-то не работает, только с
'хэндлом окна формы)
msg = "Set Next Document Parent " & lngHandle & " Style 1"
miNewApp.Do msg вот здесь вываливается ошибка
End With
'открываем интересующую нас таблицу
miNewApp.RunCommand strCriteria
Rem miNewApp.Visible = True
DoCmd.Hourglass False
Поэтому, собственно, и спрашивал про ActiveX MapX, может он нормально будет все выводить?
Наверное, этот вопрос можно было бы перенести в ветку о программировании в MapInfo? |
|
Вернуться к началу |
|
|
КД
Зарегистрирован: 30.10.2007 Сообщения: 25
|
Добавлено: Чт Ноя 15, 2007 6:26 am Заголовок сообщения: |
|
|
А вот еще такой вопрос: MapX'у, я так понимаю, все равно с какими картами работать - растровыми или векторными? Прошу посоветовать какой-н. доступный векторизатор. |
|
Вернуться к началу |
|
|
|