SAS для GPSMapEdit

Обсуждение различной информации связанной с картографией в САСе, а также сторонние программные продукты для связки с САСом

Модератор: Tolik

Re: SAS для GPSMapEdit

Сообщение vasketsov » 25 июн 2013, 13:29

Gma писал(а):При этом в САСе все кэши работают, независимо от варианта кэша

Раз не ругается, значит формально ошибки нет. У меня вообще эти кэши работают.
Скорее всего проблемы с путями.
Во всех приаттаченных zmp путь указан только относительный, например NameInCache=RoscosmosGeo. То есть путь определяется относительно настройки из ini.

Настройки саса для работы внутри DLL хранятся в файле mapedit.ini (в предположении, что имя исполняемого файла mapedit.exe) в той же папке, что и DLL.
Убедитесь, что настройки там правильные (это раздел PATHtoCACHE).

Варианты возможных простых исправлений проблемы с путями:
а) указать в NameInCache ПОЛНЫЙ путь до кэша (хотя бы временно, чтобы убедиться, что кэш работает);
б) если DLL лежит в папке с сасом (то есть mapedit.ini и SASPlanet.ini лежат в одной папке), то скопировать секцию PATHtoCACHE из SASPlanet.ini в mapedit.ini.
vasketsov
Специалист
 
Сообщения: 901
Зарегистрирован: 25 июл 2009, 21:15
Благодарил (а): 0 раз.
Поблагодарили: 193 раз.

Re: SAS для GPSMapEdit

Сообщение Gma » 26 июн 2013, 00:01

vasketsov писал(а):
Gma писал(а):При этом в САСе все кэши работают, независимо от варианта кэша

Раз не ругается, значит формально ошибки нет. У меня вообще эти кэши работают.
Скорее всего проблемы с путями.
Во всех приаттаченных zmp путь указан только относительный, например NameInCache=RoscosmosGeo. То есть путь определяется относительно настройки из ini.

Настройки саса для работы внутри DLL хранятся в файле mapedit.ini (в предположении, что имя исполняемого файла mapedit.exe) в той же папке, что и DLL.
Да, всё так.
Убедитесь, что настройки там правильные (это раздел PATHtoCACHE).

Варианты возможных простых исправлений проблемы с путями:
а) указать в NameInCache ПОЛНЫЙ путь до кэша (хотя бы временно, чтобы убедиться, что кэш работает);
Попробовал, ничего не изменилось.
б) если DLL лежит в папке с сасом (то есть mapedit.ini и SASPlanet.ini лежат в одной папке), то скопировать секцию PATHtoCACHE из SASPlanet.ini в mapedit.ini.
Полностью повторяют друг друга:
SASPlanet.ini
[PATHtoCACHE]
GMVC=cache_old\
SASC=cache\
ESC=cache_ES\
GMTiles=cache_gmt\
GECache=cache_GE\
GCCache=cache_GC\
BDBCache=cache_db\
DBMSCache=cache_sasgis\cache_sasgis
PrimaryPath=.

mapedit.ini
[PATHtoCACHE]
GMVC=cache_old\
SASC=cache\
ESC=cache_ES\
GMTiles=cache_gmt\
GECache=cache_GE\
GCCache=cache_GC\
BDBCache=cache_db\
DBMSCache=cache_sasgis\cache_sasgis
Gma
Советчик
 
Сообщения: 419
Зарегистрирован: 10 апр 2011, 23:10
Благодарил (а): 34 раз.
Поблагодарили: 69 раз.

Re: SAS для GPSMapEdit

Сообщение vasketsov » 26 июн 2013, 10:41

Gma писал(а):Полностью повторяют друг друга

Этот список генерит sas слишком старой версии. А DLL собирается по ночной версии.
И в реализации беркли могут быть существенные различия между старой версией EXE и новой версией DLL.
По крайней мере больше ничего на ум мне не приходит. Ибо кэш беркли отличается от остальных только тем, что в него вносилось много изменений после публикации (а с точки зрения прав доступа к файловой системе, путей и прочего, отличий нет).
Со своей стороны я вижу, что если я подсовываю к себе эти zmp, у меня карта и качается в сасе, и отображается в GME, вообще без проблем. Причём даже с относительным путём.
Можно попробовать подцепить новый кэш (как это делаю я) и проверить, и если новый кэш будет работать, а существующий старый не будет работать, то проблема видимо с форматом, тогда придётся обращаться к zed-у.
vasketsov
Специалист
 
Сообщения: 901
Зарегистрирован: 25 июл 2009, 21:15
Благодарил (а): 0 раз.
Поблагодарили: 193 раз.

Re: SAS для GPSMapEdit

Сообщение Gma » 27 июн 2013, 11:59

vasketsov писал(а):Этот список генерит sas слишком старой версии. А DLL собирается по ночной версии.

Версия SAS 13.5.18.7257 -- майская ночнушка. Не такая уж и старая.
Можно попробовать подцепить новый кэш (как это делаю я) и проверить, и если новый кэш будет работать, а существующий старый не будет работать, то проблема видимо с форматом, тогда придётся обращаться к zed-у.
Про кэши не понял. Где взять новый?
Gma
Советчик
 
Сообщения: 419
Зарегистрирован: 10 апр 2011, 23:10
Благодарил (а): 34 раз.
Поблагодарили: 69 раз.

Re: SAS для GPSMapEdit

Сообщение vasketsov » 27 июн 2013, 12:17

Gma писал(а):майская ночнушка. Не такая уж и старая

Вы себе даже представить не можете, что можно за месяц сломать, потом починить, а потом снова сломать, а потом снова починить, но уже по-другому (перефразируя Паниковского).
Если пользоваться ночнушками - не вижу смысла так сильно отставать. Даже если в ночнушке есть критическая ошибка, можно взять предыдущую, или за 2-3 сборки до этого. Ну и дождавшись устранения, обновиться на новую ночнушку.

Gma писал(а):Где взять новый?

Просто создать в совсем новой папке.
vasketsov
Специалист
 
Сообщения: 901
Зарегистрирован: 25 июл 2009, 21:15
Благодарил (а): 0 раз.
Поблагодарили: 193 раз.

Re: SAS для GPSMapEdit

Сообщение zed » 27 июн 2013, 12:51

vasketsov писал(а):Вы себе даже представить не можете, что можно за месяц сломать, потом починить, а потом снова сломать, а потом снова починить, но уже по-другому (перефразируя Паниковского).
Если пользоваться ночнушками - не вижу смысла так сильно отставать. Даже если в ночнушке есть критическая ошибка, можно взять предыдущую, или за 2-3 сборки до этого. Ну и дождавшись устранения, обновиться на новую ночнушку.

С одной стороны - да, тем более, что я в последнее время сильно рихтовал код, добавляя версионный Беркли. Но с другой стороны, если в САС всё работает, а в MapEdit нет - то это проблема последнего. Формат кэша не менялся с прошлого релиза и в общем-то не планируется. Поэтому кэш созданный в 121010 будет нормально работать и в последней ночнушке. Хотя я очень не рекомендую использовать релиз 121010 для Беркли, т.к. с того времени было очень много исправлений, повышающих стабильность работы кэша.
Хитрости GoogleEarth - то, чего вы не знаете о гугле
Аватара пользователя
zed
Гуру
 
Сообщения: 2888
ICQ: 357167611
Зарегистрирован: 16 авг 2008, 20:21
Откуда: Беларусь, Могилёв
Благодарил (а): 89 раз.
Поблагодарили: 525 раз.

Re: SAS для GPSMapEdit

Сообщение vasketsov » 27 июн 2013, 19:06

zed писал(а):если в САС всё работает, а в MapEdit нет - то это проблема последнего

Ни в коем случае. Здесь существенно то, что у товарища и сас, и DLL для GME собраны по двум существенно разным ночнушкам. Так что где больше ошибок - вопрос традиционно открытый.
Я же предлагаю ему синхронизировать возможные ошибки в сасе и в DLL для GME.
Ибо DLL абсолютно не имеет никакой своей логики работы с кэшем, всё стандартное (так что если нет ошибок - скорее всего пути кривые).

zed писал(а):кэш созданный в 121010 будет нормально работать и в последней ночнушке

Я в общем-то также думаю.
Единственное НО - это возможные ошибки в самом кэше, из-за которых новые ночнушки бы ругались, а старые молчат, и соответственно новая DLL молча не работает (она ж нигде не покажет State у кэша, если там будет такой косяк, что State станет disabled).
В этом случае обновление ночнушки саса до актуальной возможно бы пролило свет на ситуацию.
А то я и правда не втыкаю, почему не работает, разве что монитор HDD посоветовать запустить и поглядеть, что с путями. У меня DLL для GME работает с кэшем в беркли.
vasketsov
Специалист
 
Сообщения: 901
Зарегистрирован: 25 июл 2009, 21:15
Благодарил (а): 0 раз.
Поблагодарили: 193 раз.

Re: SAS для GPSMapEdit

Сообщение vasketsov » 27 авг 2013, 16:43

Выпустилась версия vsa_sas_to_gme_1.0.0.8.rar

Изменений существенных два:
1. Из DLL выкинуты метки, прокси, веббразуеры, качалка и т.п. - что линковалось, но было недоступно, и что удалось выкинуть по-простому. Я у себя для разных кэшей проверил, вроде пашет, если вдруг будут ошибки типа Assertion - пишите. Цель - уменьшение размера DLL и исключение ненужных влияний DLL и саса при одновременном запуске.
2. Сделана возможность указать список DLL для предзагрузки. Реализовано прямо в основном коде (то есть в SACS тоже есть). Ручками идём в ini и создаём секцию [Preload] (если её ещё нет), там построчно пишем типа 1=C:\SQLite\sqlite3.dll и т.п. Обращаю внимание, что имя ini-шки образуется от имени исполняемого файла. Поэтому для SASPlanet.exe это будет SASPlanet.ini, а для mapedit.exe будет mapedit.ini (именно туда надо добавлять DLL-ки, если сас работает с кэшем, а DLL с ним же не работает).

Также напоминаю, что DLL надо класть в папку с SASPlanet.exe, регистрировать её же оттуда же. При регистрации cmd и bat запускать от имени администратора.
В папку с mapedit.exe ничего класть не надо.

Традиционно всё тут:
https://bitbucket.org/vasketsov/sas_to_gme
Качать отсюда:
https://bitbucket.org/vasketsov/sas_to_gme/downloads

За это сообщение автора vasketsov поблагодарил:
Gma (28 ноя 2013, 23:41)
Рейтинг: 5.26%
 
vasketsov
Специалист
 
Сообщения: 901
Зарегистрирован: 25 июл 2009, 21:15
Благодарил (а): 0 раз.
Поблагодарили: 193 раз.

Re: SAS для GPSMapEdit

Сообщение vasketsov » 28 авг 2013, 02:19

vasketsov писал(а):
Marksheider писал(а):64 битная

Как будет возможность - проверю на x64

Проверил - последняя версия прекрасно работает на Windows 7 Ent. x64 RUS.
vasketsov
Специалист
 
Сообщения: 901
Зарегистрирован: 25 июл 2009, 21:15
Благодарил (а): 0 раз.
Поблагодарили: 193 раз.

Re: SAS для GPSMapEdit

Сообщение vasketsov » 28 авг 2013, 02:42

REXX писал(а):У меня система Windows 7 Ultimate 64bit.
SASPlanet установлен c:\ProgramGPS\SAS.Planet.Release.120808\
В папку SAS.Planet.Release.120808, где находиться SASPlanet.exe, распаковал архив-
vasketsov-sas_to_gme-b31a615b8ff6.zip
При запуске vsa_sas_to_gme.install.bat выдавалось сообщение об отсутствии файла.
В bat файле есть указание только на регистрацию vsa_sas_to_gme.dll, но нет никакого файла в архиве, и нет указания на то, как он должен компилироваться при запуске программы.

В папку с сасом кладётся:
vsa_sas_to_gme.dll
vsa_sas_to_gme.install.bat
vsa_sas_to_gme.uninstall.bat
Этого достаточно.
Если какого-то файла нет - надо взять или из тутошних архивов, или качнуть из репозитория (ссылка приведена чуть выше).
Файл vsa_sas_to_gme.dll надо взять из последнего тутошнего архива.

REXX писал(а):MapEdit в папке c:\Program Files (x86)\GPSMapEdit11752\

Где находится GME - совершенно без разницы.

REXX писал(а):Решение проблемы с ошибкой "об отсутствии файла".
Скачал файл *.dll с этой ветки форума.
Скопировал в папку c:\Windows\SysWOW64\ (для кучи и в c:\Windows\System32\). Этот же sas_to_gme.dll скопировал в папку с SAS и MapEdit.
Запускаем vsa_sas_to_gme.install.bat с правым кликом и выбором пункта "Запуск от имени администратора" (даже если работаете в системе от имени администратора).
После этого регистрируется без проблем.

Кроме того, что DLL зарегистрировалась, она ещё должна каким-то образом умудриться найти папку с сасом, карты и кэш.
Именно поэтому я и рекомендую, чтобы DLL лежала в папке с сасом. Надо только разобраться, почему она не регистрируется.

Впрочем, если она всё же зарегистрировалась по неизвестно какому пути, то можно поступить следующим образом.
Найти её в реестре (искать по строке vsa_sas_to_gme.vsa_sas_sat) и поглядеть что за путь указан для DLL.
Скорее всего она будет тут:
HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{D69B10E8-467E-481B-B0B0-2C1B424E11A0}\InprocServer32
там параметр со значением по умолчанию хранит полное имя DLL с путём, по которому она зарегистрировалась. Остальные экземпляры DLL, если они раскидывались по прочим системным папкам, можно удалить.
Потом надо пойти в папку, где находится правильная DLL, и создать там файлик mapedit.ini с содержимым из файла SASPlanet.ini (можно скопировать и переименовать). Этот файлик надо отредактировать таким образом, чтобы путь до карт и кэша стал правильный относительно папки с DLL (а не относительно папки с сасом), можно указать полные пути. Все параметры, которые подлежат исправлению, либо называются PrimaryPath, либо находятся в секции PATHtoCACHE. Это не всегда тривиальная процедура, но раз уж DLL не в папке с сасом - придётся попотеть.

REXX писал(а):Скопировал папки с zmp в папку MAPs:
c:\MAPs\geoportal.md.cadastre.zmp\
c:\MAPs\geoportal.md.zmp\
c:\MAPs\RoscosmGeo.zmp\

А откуда DLL должна узнать, что zmp для неё теперь хранятся в папке c:\MAPs, а не в подпапке Maps?

REXX писал(а):Но в MapEdit никаких дополнительных меню или панелей не появилось.

Потому что не нашлось ни одного zmp.

REXX писал(а):В Настройках МапЭдита расположение кэша не менял.

В настройках МапЭдита нет возможности сменить путь до zmp.

REXX писал(а):Вопрос: что еще нужно настроить, что бы меню выбора появились в МапЭдите?

Нужно обеспечить видимость zmp из DLL, а также видимость нужных кэшей из DLL. См. выше.
vasketsov
Специалист
 
Сообщения: 901
Зарегистрирован: 25 июл 2009, 21:15
Благодарил (а): 0 раз.
Поблагодарили: 193 раз.

Пред.След.

Вернуться в Другие программы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2