Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема MapWindow ActiveX Control - free GIS (число прочтений - 6204 )
Kolhoznik
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 32
Зарегистрирован: 11. Февраля 2008
MapWindow ActiveX Control - free GIS
20. Марта 2008 :: 21:08
Печать  
Уже с неделю ищу возможность заюзать ГИС в 1С.
И вот оно: http://www.mapwindow.org.
Море возможностей, куча примеров и отличная документация.
---
Но вот запустить этот ActiveX в 1C мне ума не хватает  Печаль
Надо сделать MapWinGIS.Shapefile.Open(file.shp),  но не знаю как. Перепробовал всё что смог найти по аналогии.
---
Надеюсь, кто-нить из местных специалистов заинтересуется данным объектом и переделает какой-нить из примеров на 1С.

Приложен пример использования на VB.
  

frmMain.zip ( 7 KB | Загрузки )
Наверх
 
IP записан
 
Kolhoznik
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 32
Зарегистрирован: 11. Февраля 2008
Re: MapWindow ActiveX Control - free GIS
Ответ #1 - 20. Марта 2008 :: 21:38
Печать  
Итак по пунктам:

1. Создаем форму, добавляем на форму текстовый реквизит с идентификатором "МАП" и привязываем к нему ActiveX:
Код
Выбрать все
     оФорма = СоздатьОбъект("Форма");
     оФорма.УстановитьФорму(Форма);
     эуМАП = оФорма.СоздатьЭлементУправления("АктивИкс", "МАП");
     эуМАП.СоздатьЭУ("MapWinGIS.Map.1"); 

   
2. Теперь нужно подгрузить на карту файл с описанием слоя. На VB это выглядит так:
Код
Выбрать все
	 Dim sf As MapWinGIS.Shapefile, handle As Long
	 Set sf = New MapWinGIS.Shapefile
	 If sf.Open(Filename) = True Then
	     handle = Map1.AddLayer(sf, True)
	     'exit if this is not a vaild layer handle
	     If handle < 0 Then Exit Sub 

                 
В первую очередь попробовал так:
Код
Выбрать все
оШП = СоздатьОбъект("MapWinGIS.Shapefile"); // объект создается, ТипЗначения(оШП) = 100 

     
а вот на
Код
Выбрать все
оШП.open("D:\MapWindow\SimpleMap-VB6\SampleShapefiles\UnitedStates\states.sbn") ; 


ругается: "Поле агрегатного объекта не обнаружено (Open)".
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: MapWindow ActiveX Control - free GIS
Ответ #2 - 21. Марта 2008 :: 05:18
Печать  
Kolhoznik писал(а) 20. Марта 2008 :: 21:38:
Итак по пунктам:

1. Создаем форму, добавляем на форму текстовый реквизит с идентификатором "МАП" и привязываем к нему ActiveX:
Код
Выбрать все
    
     оФорма = СоздатьОбъект("Форма");
     оФорма.УстановитьФорму(Форма);  
     эуМАП = оФорма.СоздатьЭлементУправления("АктивИкс", "МАП");
     эуМАП.СоздатьЭУ("MapWinGIS.Map.1"); 

   


А далее
ОбъектАктивИкс = эуМАП.Объект;
ну и ОбъектАктивИкс.open(...); тра-та-та?  Круглые глаза
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
Kolhoznik
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 32
Зарегистрирован: 11. Февраля 2008
Re: MapWindow ActiveX Control - free GIS
Ответ #3 - 21. Марта 2008 :: 05:57
Печать  
да, дальше будет:
Код
Выбрать все
оМап = эуМАП.Объект;
Х = оМАП.AddLayer(оШП);
 


только вот открыть файл с данными слоя для оШП не выходит.

Вот здесь http://www.mapwindow.org/phorum/read.php?3,3416,3845#msg-3845 видимо этот вопрос поясняется для тупого француза  Улыбка в чем он не прав, но для меня это темный лес.
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: MapWindow ActiveX Control - free GIS
Ответ #4 - 21. Марта 2008 :: 06:08
Печать  
Kolhoznik писал(а) 21. Марта 2008 :: 05:57:
да, дальше будет:
Код
Выбрать все
оМап = эуМАП.Объект;
Х = оМАП.AddLayer(оШП);
 


только вот открыть файл с данными слоя для оШП не выходит.


слушай сделай пример с активиксом самим чтобы попробовать может тогда советов больше будет  Подмигивание
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
Kolhoznik
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 32
Зарегистрирован: 11. Февраля 2008
Re: MapWindow ActiveX Control - free GIS
Ответ #5 - 21. Марта 2008 :: 06:45
Печать  
Если бы было что выкладывать тему бы начал в "репозитарии".
Cам MapWinGIS ActiveX Control здесь
http://www.mapwindow.org/download.php?show_details=2
в двух вариантах.
Там же и примеры и документация.
  
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: MapWindow ActiveX Control - free GIS
Ответ #6 - 21. Марта 2008 :: 10:35
Печать  
Когда 1С брыкается при использовании COM/OLE-объектов, я использую MSScriptControl.
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
Kolhoznik
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 32
Зарегистрирован: 11. Февраля 2008
Re: MapWindow ActiveX Control - free GIS
Ответ #7 - 23. Марта 2008 :: 05:08
Печать  
MSScriptControl во всех своих ипостасях (javascript, vbscript) тоже не заработал.
Засомневавшись в работоспособности АктивИкса установил VS2005 - там пример кода на VB заработал без проблем.
Сейчас направление исследований такое: сделать ВК которая будет возвращать созданный объект MapWinGIS.Shapefile в 1С.
ЗЫ: Уже много лет ничего, кроме 1С, не использовал. И все происходит в режиме "О сколько нам открытий чудных ....". Так что от меня результаты появятся видимо не скоро.
  
Наверх
 
IP записан
 
Kolhoznik
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 32
Зарегистрирован: 11. Февраля 2008
Re: MapWindow ActiveX Control - free GIS
Ответ #8 - 23. Марта 2008 :: 20:35
Печать  
Процесс "пошел"  Улыбка

« Последняя редакция: 19. Сентября 2008 :: 07:31 - Kolhoznik »  
Наверх
 
IP записан
 
axilab
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 1
Зарегистрирован: 02. Ноября 2008
Re: MapWindow ActiveX Control - free GIS
Ответ #9 - 05. Ноября 2008 :: 10:26
Печать  
Уважаемый Kolhoznik а не поделитесь тем как вы решили данную проблему?  я так понимаю что вся загвоздка в том что данный АктивИкс имеет несколько интерфейсов а 1С воспринимает только default интерфейс.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать