View Issue Details

IDProjectCategoryView StatusLast Update
0003030SAS.ПланетаХотелка / Feature requestpublic27-03-2019 10:54
ReporterDimaDD Assigned Tovdemidov  
PrioritynormalSeverityfeatureReproducibilityN/A
Status closedResolutionwon't fix 
Summary0003030: Взаимодействие с программой OziExplorer (PC) через библиотеку OziAPI.dll
DescriptionЭто нововведение представляется довольно интересным и полезным (думается, что многие пользователи были бы очень благодарны за такой доп. функционал). Подозреваю также, что реализация не должна оказаться слишком сложной.
Внешне это может выглядеть так:
Одновременно открыты два окна - SAS Planet (скажем, со спутниковым изображением) и OziExplorer (с пользовательской картой, например - исторической). Пользователь указывает мышью позиции на изображении местности в SAS Planet - и они тут же показываются в OziExplorer (проще всего и, кмк, вполне достаточно просто центрированием карты). И наоборот: SAS Planet показывает расположение точек, указанных мышью в OziExplorer.
Таким образом, получается весьма удобный двухоконный инструмент для сравнения пользовательских карт с местностью.
Steps To ReproduceНа сайте OziExplorer находится свободно распространяемая библиотека OziAPI.dll (http://www.oziexplorer3.com/oziapi/oziapi.html), вместе с тех. документацией и примерами (в т.ч. для Delphi).
Некоторая проблема также возникает с показом центра карты в OziExplorer (я не нашёл там отображения чего-нибудь вроде перекрестья в центре карты), однако это довольно просто решается нахождением окна OziExplorer, его дочернего компонента класса "TScrollBox1" и рисованием пользовательского маркера поверх него в центре.
Additional InformationНечто подобное (в веб-варианте) реализовано на сайте http://www.etomesto.ru, но там только лишь синхронизируется положение карт, что менее удобно.
Кроме того, 2 года назад я написал (большей частью собрал из того, что нашёл) небольшую и простую Delphi7-программу OziGE, которая реализует это дело с использованием GoogleEarth API. Однако, когда сейчас решил немного "причесать" этот проект, то вдруг обнаружил, что сервис GoogleEarth API прекратит работу в конце 2016 года (https://developers.google.com/earth/) и, стало быть, программа перестанет работать(?)...(((
Программу можно найти вот тут:
Google Drive: https://drive.google.com/file/d/0BwwWPUHhxn2ETHdZcmd2NVlBVlU
Yandex Disk: https://yadi.sk/d/SEURrq9IrmBBx
Прилагаю также исходники (D7), оттуда можно позаимствовать всё, что может потребоваться.
TagsNo tags attached.
Attached Files
OziGE_Src.zip (220,061 bytes)

Activities

vdemidov

19-05-2016 13:15

manager   ~0017224

Не знаю зачем это и кому нужно. Терпеть не могу Озик. Собственно из-за его убогости и необходимости альтернативы в свое время присоединился к разработке САС.Планеты.

DimaDD

19-05-2016 14:39

reporter   ~0017225

Озик тут лишь играет роль второго окна-вьюера для пользовательских карт (использование которых сейчас в SAS.Planet весьма заморочно, в этом она пока что не альтернатива). Несмотря на свою архаичность, Озик вполне исправно показывает свой вариант карт (картинка + map-файл, которые до настоящего времени крайне популярны), калибровка изображений в Озике очень простая и быстрая.

Второй важный момент: два окна при сличении карты с местностью (или двух карт) зачастую удобнее, чем одно изображение, наложенное полупрозрачным слоем поверх другого (либо с переключением видимости слоёв). Такой функционал может быть полезен, скажем, тем, кто работает с историческими картами (историкам, археологам). Сайт ЭтоМесто.ру (или OziGE) - это довольно наглядные примеры двухоконных картографических приложений, всё же стоит глянуть... Мне с коллегами (мы геологи-"научники") часто бывает нужно сличение местности с тематическими картами (геологическими разных типов, фактического материала и др.), которые далеко не всегда в исходном формате, зачастую это вообще сканы со старых калек, публикаций и т.п. При планировании/обсуждении деталей маршрутов тоже весьма полезно видеть местность и карту в двух окнах сразу.

zed

19-05-2016 14:56

manager   ~0017226

DimaDD
Может вы можете сами сделать эту хотелку?

DimaDD

19-05-2016 15:14

reporter   ~0017227

У меня нулевой опыт в коллективных программных проектах, да ещё таких больших и такого уровня. Всё, что я делал до сих пор (и, хм, продолжаю), это (поза)прошлый век.
Я, конечно же, заглянул в исходники... Сказать, что я мало, что понял - это было бы слишком мягко сказано!
Хоть я ещё попытаюсь, но сильно подозреваю, что мой уровень низковат.

Garl

19-05-2016 17:43

manager   ~0017228

Не бойтесь для меня тоже САС-Планета - первый практический опыт как в коллективной разработке, так и вообще в ООП )) было бы желание.
з.ы.
я пользуюсь хоткеями для карт и при переключении очень даже наглядно всё получается и на одном мониторе

vdemidov

20-05-2016 07:15

manager   ~0017229

> Не бойтесь
+1

Для начала попробуйте реализовать однократную синхронизацию экранов ОЗИ и САС просто по выбору пункта меню в САС. Кликнули - центр экрана САС переместился в то же положение что открыто в ОЗИ.

DimaDD

20-05-2016 13:39

reporter   ~0017235

Спасибо за моральную поддержку! Хотя я сразу запнулся ещё на стадии образа в VBox )) - мой нынешний домашний комп слабоват, пока что придётся на работе...(((

Но сейчас стал подозревать, что лучше пойти по несколько иному пути. Кмк, он для SAS.Planet более предпочтителен(?)

Я более внимательно изучил записи багтрекера + исходники и обнаружил замечательную хотелку, которая в значительной мере пересекается с моей, но является более глобальной: 0001869. Она уже решена, тестовая программа TestWMCopyData.exe работает исправно.

В общем, идея простая: чем внедрять поддержку Озика (или чего-то ещё стороннего, кто знает?) непосредственно в саму САС Планету, лучше написать маленькую отдельную программку, которая бы взяла на себя как всю возню с OziAPI.dll, так и общение с САС Планетой.

Однако, пока что через посылку WM_COPYDATA решается лишь половина задачи общения с САС Планетой: не хватает отправки обратных сообщений((( Об этом, вроде, уже заходила речь, но... Может, стоит подумать в этом направлении?

P.S. Пока что в качестве чрезвычайно уродливого костыля я могу воспользоваться имеющимся копированием координат в буфер обмена (правая кнопка мыши + "КК", хотя тут есть небольшая проблемка с English language), но это жесть, конечно!)))

Issue History

Date Modified Username Field Change
19-05-2016 12:16 DimaDD New Issue
19-05-2016 12:16 DimaDD File Added: OziGE_Src.zip
19-05-2016 13:15 vdemidov Note Added: 0017224
19-05-2016 14:39 DimaDD Note Added: 0017225
19-05-2016 14:56 zed Note Added: 0017226
19-05-2016 15:14 DimaDD Note Added: 0017227
19-05-2016 17:43 Garl Note Added: 0017228
20-05-2016 07:15 vdemidov Note Added: 0017229
20-05-2016 13:39 DimaDD Note Added: 0017235
27-03-2019 10:54 vdemidov Status new => resolved
27-03-2019 10:54 vdemidov Resolution open => won't fix
27-03-2019 10:54 vdemidov Assigned To => vdemidov
27-03-2019 10:54 vdemidov Status resolved => closed
08-08-2025 13:24 zed Category Хотелка => Хотелка / Feature request