Какой функцией MapApi открыть URL WMS сервиса Yandex Спутник?
Какой URL при этом прописать в качестве параметра?
Какой функцией добавить новую карту поверх открытого геопортала, так чтобы автоматически проекция этой добавленной карты точно совпала с проекцией открытой карты Yandex Спутник?
Ваш вопрос вынесен в отдельную тему. Просьба не задавать вопросы в темах, относящихся к другим продуктам. Вопрос передан на рассмотрение специалистам. Ответ будет дан в этой теме.
Для работы с геопорталами служат функции mapPortalMenu - для открытия и подключения списка геопорталов и mapEditWms для получения строки подключения. Рекомендую пользоваться разработанным компонентом для GistoolKit MapWMSPopupDialog, который уже включает в себя эти две функции. + он совместно с MapView обрабатывает события отправленные функцией mapPortalMenu. Также узнать строку подключения к интересующему вас геопорталу вы можете в меню настроек геопорталов, выбрав соответствующий в списке. Его вы можете подать в функцию mapOpenAnyData и mapAppendAnyData для открытия и добавления геопорталов или карт. Строки подключений от версии к версии могут меняться и являются внутренним механизмом реализации. При добавлении геопортала или карте к геопорталу проекция данных карты меняется к проекции геопортала автоматически.
Владимир Железняков написал: Для работы с геопорталами служат функции mapPortalMenu - для открытия и подключения списка геопорталов и mapEditWms для получения строки подключения. Рекомендую пользоваться разработанным компонентом для GistoolKit MapWMSPopupDialog, который уже включает в себя эти две функции. + он совместно с MapView обрабатывает события отправленные функцией mapPortalMenu. Также узнать строку подключения к интересующему вас геопорталу вы можете в меню настроек геопорталов, выбрав соответствующий в списке. Его вы можете подать в функцию mapOpenAnyData и mapAppendAnyData для открытия и добавления геопорталов или карт. Строки подключений от версии к версии могут меняться и являются внутренним механизмом реализации. При добавлении геопортала или карте к геопорталу проекция данных карты меняется к проекции геопортала автоматически.
А где должен был появиться геопортал? mapOpenAnyData создает в памяти экземпляр класса для работы с картой и возвращает его хэндл. Чтобы что-то где то увидеть, надо с этим хэндлм еще поработать. То есть сделать примерно то, что выполняет компонент MapView. Компонент MapView ничего не может знать о том, что программист выполняет, минуя его методы.
Да, отказ от использования штатных средств работы с геопорталами (в частности, mapPortalMenu), во-первых, не освобождает от необходимости наличия в каталоге Вашей программы файлов: wmslist_ru.xml wmslist_en.xml epsg.csg epsg.csp epsg.csu crslist.xml crsregister.xml а во-вторых, не гарантирует корректной работы с этими геопорталами в будущем при изменении протоколов или параметров доступа к ним.
Также рекомендую анализировать коды возврата при вызове методов компонентов и MAPAPI-функций.
Добавляем нашу карту. procedure Tform_main.N63Click(Sender: TObject); Var FileName : widestring; begin // Определяем путь к карте FileName := PathProject+'\Map\Map.sit'; mapAppendAnyData(form_main.mvMap.MapHandle,PChar(FileName)); form_main.mvMap.Repaint; end;
Ожидаем. То что наша карта ляжет точно в проекции геопортала, т.е. так как было в ответе выше При добавлении геопортала или карте к геопорталу проекция данных карты меняется к проекции геопортала автоматически.
Результат на скриншоте. Т.е. наша карта должна была добавиться примерно на 3 метра вправо и на 2 метра выше. Но так не получилось. Получилось также как если бы была загружена наша карта, а затем подключили геопортал Yandex Спутник. Нужно чтобы проекция карты спроецировалась точно на геопортал. Как можно это сделать?
Если не получиться как описано выше, то как можно продвинуться по данному вопросу, пусть хотя-бы примерно, например, добавить 3 метра и 2 метра.
Все отобразилось с учетом проекции снимков. В большинстве случаев смещение на снимках вводит поставщик снимков (геопортал) искуственно. Но также на это влияет точность ваших данных. Какой базовый масштаб подключаемой карты? Как цифровалась карта, по каким данным? Функции для задания искуственного смещения пока нет, планируется добавить в следующих версиях. Но его надо будет вводить вручную.
Владимир Железняков написал: Функции для задания искуственного смещения пока нет, планируется добавить в следующих версиях. Но его надо будет вводить вручную.
!!! Очень нужно !!! Хотя бы betta версию! Если это добавить не очень сложно. Если появится хоть какая-то версия, готов протестировать. Спасибо большое.
В библиотеках ГИС-ядра для GIS ToolKit версия 12 для платформы "x64" и для платформы "x32" добавлена возможность установки смещения для различных геопорталов. Данная опция необходима для установки точного совпадения исходных данных и геопортала (который вводит смещение искусственно).
1) получить установленное в xml файле смещение по X 2) получить установленное в xml файле смещение по Y 3) записать в xml файл смещение по X 4) записать в xml файл смещение по Y