На главную... Продукты | Технологии | Классификаторы | Проекты | Скачать | Цены| Форум | Статьи | Обучение | Контакты

Николай Беспалов (Все сообщения пользователя)

Поиск  Пользователи  Правила  Войти
Форум » Пользователи » Николай Беспалов
Выбрать дату в календареВыбрать дату в календаре

Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 12 ... 14 След.
ImportFromAnySxf меняет окружение, Порядок вызова ImportFromAnySxf для разных карт влияет на значение габаритов
 
2. Почему на Windows и Linux результат mapGetTotalBorder не одинаков? (mapSetScreenImageSize\mapSetScreenScale\mapSetScreenPrecisio­n выставлены)
]2. Почему на Windows и Linux результат mapGetTotalBorder не одинаков? (mapSetScreenImageSize\mapSetScreenScale\mapSetScreenPrecisio­n выставлены)
2. Почему на Windows и Linux результат mapGetTotalBorder не одинаков? (mapSetScreenImageSize\mapSetScreenScale\mapSetScreenPrecisio­n выставлены)
2. Почему на Windows и Linux результат mapGetTotalBorder не одинаков? (mapSetScreenImageSize\mapSetScreenScale\mapSetScreenPrecisio­n выставлены)
2. Почему на Windows и Linux результат mapGetTotalBorder не одинаков? (mapSetScreenImageSize\mapSetScreenScale\mapSetScreenPrecisio­n выставлены)
2. Почему на Windows и Linux результат mapGetTotalBorder не одинаков? (mapSetScreenImageSize\mapSetScreenScale\mapSetScreenPrecisio­n выставлены)
2. Почему на Windows и Linux результат mapGetTotalBorder не одинаков? (mapSetScreenImageSize\mapSetScreenScale\mapSetScreenPrecisio­n выставлены)
2. Почему на Windows и Linux результат mapGetTotalBorder не одинаков? (mapSetScreenImageSize\mapSetScreenScale\mapSetScreenPrecisio­n выставлены)
2. Почему на Windows и Linux результат mapGetTotalBorder не одинаков? (mapSetScreenImageSize\mapSetScreenScale\mapSetScreenPrecisio­n выставлены)
2. Почему на Windows и Linux результат mapGetTotalBorder не одинаков? (mapSetScreenImageSize\mapSetScreenScale\mapSetScreenPrecisio­n выставлены)
2. Почему на Windows и Linux результат mapGetTotalBorder не одинаков? (mapSetScreenImageSize\mapSetScreenScale\mapSetScreenPrecisio­n выставлены)
2. Почему на Windows и Linux результат mapGetTotalBorder не одинаков? (mapSetScreenImageSize\mapSetScreenScale\mapSetScreenPrecisio­n выставлены)
2. Почему на Windows и Linux результат mapGetTotalBorder не одинаков? (mapSetScreenImageSize\mapSetScreenScale\mapSetScreenPrecisio­n выставлены)
2. Почему на Windows и Linux результат mapGetTotalBorder не одинаков? (mapSetScreenImageSize\mapSetScreenScale\mapSetScreenPrecisio­n выставлены)
На Astra Linux ImportFromAnySxf не импортирует карты в путях с русскими буквами
 
ГИС Конструктор для Qt Designer x64 (версия 11.9.3, Qt 4, платформа x64, ОС Astra Linux Special Edition, релиз "Смоленск" версия 1.4)
Не может импортировать(ImportFromAnySxf) .TXF карты. На Windows (gislib 11.13.0) импортируются, на Astra Linux SE не импортируются.

Получаю одно единственное сообщение WM_ERRORSXF в обработчике сообщений

Если .TXF лежит по пути в котором есть русские буквы, то не импортируется, если русских букв нет, то импортируется

Карты выложу по требованию
ImportFromAnySxf меняет окружение, Порядок вызова ImportFromAnySxf для разных карт влияет на значение габаритов
 
DFRAME конструирую значениями полученными от mapGetTotalBorder. На Windows тайл, мягко говоря, не похож на тайл полученный на Linux. Т.к. при детальном рассмотрении значений габаритов выясняется что они РАЗЛЧИНЫ.

1. Карты у нас не всего мира.
2. Есть карты и всего мира, есть карты районов город, есть карты регионов и городов.

Мы используем следующий алгоритм для получения тайла на нулевом уровне:
1. Получаем габариты mapGetTotalBorder
2. Засовываем в DFRAME
3. Вызываем mapPaintByFrameEx c полученным DFRAME

Для получения тайлов на других уровнях берем DFRAME и соответствующим образом "изменяем" его. На нулево уровне один тайл, на первом уровне 4 тайла, а значит DFRAME делим на четыре части и передаем соответствующие части в mapPaintByFrameEx

1. Что мы делаем не так?
2. Почему на Windows и Linux результат mapGetTotalBorder не одинаков? (mapSetScreenImageSize\mapSetScreenScale\mapSetScreenPrecisio­n выставлены)

Пожалуйста
Изменено: Николай Беспалов - 01.02.2016 16:13:06
ImportFromAnySxf меняет окружение, Порядок вызова ImportFromAnySxf для разных карт влияет на значение габаритов
 
Лихо вы... Я же не с луны свалился, сто тысяч раз видел ваши хидеры. Нет смысла их выкладывать в каждый ответ.

Лучше отвечайте ровно на те вопросы которые задаются. Я же не спроста в пункты их объединяю. Уже несколько раз диалог уходил в сторону.

Вот вопросы, дайте ответ по каждому пункту:
1. Олег, покажите как нарисовать всю карту в картинку 256х256 использую mapPaintByFrameEx без габаритов карты
2. НАМ НУЖНЫ ГАБАРИТЫ КАРТЫ. Для получения тайлов и для других задач в том числе
3. Собственно мы и вычисляем координаты тайла основываясь на ГАБАРИТАХ КАРТЫ.
4. Если габариты карты пляшут\не верные\бла бла бла, то и тайлы будут получается не корректными, очевидно

UPD:
я могу не владеть терминологией, но мне кажется "покрытие" == "габариты". Если это не так, то скажите как получить "покрытие"
Изменено: Николай Беспалов - 01.02.2016 15:38:21
ImportFromAnySxf меняет окружение, Порядок вызова ImportFromAnySxf для разных карт влияет на значение габаритов
 
[B]ГИС Конструктор для Qt Designer x64 (версия 11.9.3, Qt 4, платформа x64, ОС Astra Linux Special Edition, релиз "Смоленск" версия 1.4)[/B]
Не может импортировать(ImportFromAnySxf) .TXF карты. Их я выкладывал. Проверьте пожалуйста. На Windows импортируются, на Astra Linux SE не импортируются.

UPD:
Получаю одно единственное сообщение WM_ERRORSXF в обработчике сообщений

UPD2:
Если .TXF лежит по пути в котором есть русские буквы, то не импортируется, если русских букв нет, то импортируется
Изменено: Николай Беспалов - 01.02.2016 15:17:16
ImportFromAnySxf меняет окружение, Порядок вызова ImportFromAnySxf для разных карт влияет на значение габаритов
 
1. Нам все же нужны настоящие габариты карты т.к. согласно этих габаритов рисуют тайлы на "мировой" карте
2. Мы начинаем от нижнего левого, работаем по [URL=https://wiki.osgeo.org/wiki/Tile_Map_Service_Specification]Tile Map Service Specification[/URL]
3. На тайле 0\0\0 у нас должна уместиться вся карта целиком. Как подобрать масштаб?
ImportFromAnySxf меняет окружение, Порядок вызова ImportFromAnySxf для разных карт влияет на значение габаритов
 
Продолжаем.

Нам нужно построить пирамиду тайлов для карты. Мы знаем про ImageryCreator и про ImageryService. У нас очень похожая задача.

Что мы делаем:
1. Получаем габариты карты с помощью mapGetTotalBorder
2. Получаем тайлы с помощью mapPaintByFrameEx, габариты конкретного тайла получаем не хитрым способом из габаритов карты

В итоге:
1. Накаладываем полученные тайлы на карты Google/Yandex/OSM и получаем расхождения. Да мы знаем в каких проекциях эти карты, мы репроецируем свои карты в проекции "эталонов".
2. Научились минимизировать расхождения с помощью тройки mapSetScreenImageSize\mapSetScreenScale\mapSetScreenPrecisio­n
3. Поняли, что mapGetTotalBorder выдает "что-то не то".

Вопрос:
Каким способ нам решить нашу задачу?
1. Каким методом api получить настоящие габариты карты?
2. Каким методом api получить изображение карты в заданном регионе(тайл)?
ImportFromAnySxf меняет окружение, Порядок вызова ImportFromAnySxf для разных карт влияет на значение габаритов
 
[QUOTE]Oleg Belenkov пишет:
При работе приложения ему должны быть доступны библиотеки строго из одного комплекта (одной версии).
Поэтому при разработке библиотеки не должны быть в различных системных папках (Windows, Program Files и т.п.),
а только в папке с приложением. [/QUOTE]
[IMG]https://i.gyazo.com/0a21c2de24952c7ccac6c53c1c6ae1df.png[/IMG]
Т.е. в системных папках нет gisacces.dll

[QUOTE]Oleg Belenkov пишет:
Остальные версии нужно хранить в отдельной папке, не входящей в состав системных папок или папок с установленными версиями программ (прописанными в реестр).
Сообщение типа "Точка входа не найдена" говорит о смешивании библиотек разных версий,
что может происходить неявно при старте приложения. Подгружаются библиотеки из доступных папок и результат работы программы непредсказуем. [/QUOTE]
Ровно так и хранится

[QUOTE]Oleg Belenkov пишет:
Разрешение экрана влияет на габариты знаков и габариты общей картинки.
У листа есть рамка карты. Ее координаты всегда постоянны. Пользуйтесь ею. Что Вы хотите от габаритов изображения на экране?[/QUOTE]
Нам нужно нарисовать всю карту целиком в картинку размер 256х256. Не трудно догадаться что картинка отличается от версии к версии и от ОС к ОС.
Изменено: Николай Беспалов - 29.01.2016 16:47:27
ImportFromAnySxf меняет окружение, Порядок вызова ImportFromAnySxf для разных карт влияет на значение габаритов
 
Я провел эксперименты и они не утешительны. Ниже будет представлен настоящий вывод программы для двух необходимых нам ОС. Код прилагается, тестовые данные вышлю по запросу.

1. Версия библиотек от 29.01.2016 не работает вовсе.
2. Цифры на Windows отличаются от цифр на Linux.
3. Для наших задач критично чтобы цифры габаритов для всех поддерживаемых ОС были идентичны и не зависели от порядка открытия\импортирования карт.
4. Выяснилось, что размер монитора влияет на цифры габаритов получаемые при импортировании.

Библиотеки для GIS ToolKit версия 11.12.6

[CODE]Тестирование .TXF

MAPACCESSVERSION: 20150210
MAPAPIVERSION: 0x111206

Импортирование M48 затем O49
Габариты M48:
X1=5295854.000 Y1=18251130.860 X2=5790364.000 Y2=18736498.000
Габариты O49:
X1=6187154.000 Y1=19287850.630 X2=6679504.000 Y2=19698621.000

Импортирование O49 затем M48
Габариты O49:
X1=6187154.000 Y1=19287850.630 X2=6679504.000 Y2=19698621.000
Габариты M48:
X1=5297002.000 Y1=18251130.860 X2=5789216.000 Y2=18735350.000

Тестирование .SXF

MAPACCESSVERSION: 20150210
MAPAPIVERSION: 0x111206

Импортирование K37010 затем K3705
Габариты K37010:
X1=4836197.000 Y1=7618545.000 X2=4877621.000 Y2=7662579.000
Габариты K3705:
X1=4796822.300 Y1=7576707.700 X2=4879158.000 Y2=7664506.000

Импортирование K3705 затем K37010
Габариты K3705:
X1=4796822.300 Y1=7576707.700 X2=4879158.000 Y2=7664506.000
Габариты K37010:
X1=4836214.998 Y1=7618561.802 X2=4877506.000 Y2=7662464.000

Тестирование .DIR

MAPACCESSVERSION: 20150210
MAPAPIVERSION: 0x111206

Импортирование L36 затем O40
Габариты L36:
X1=4861408.372 Y1=6246873.411 X2=5811800.493 Y2=7226965.858
Габариты O40:
X1=6196171.831 Y1=10300350.612 X2=6668745.000 Y2=10692910.000

Импортирование O40 затем L36
Габариты O40:
X1=6196171.831 Y1=10310134.007 X2=6668745.000 Y2=10692910.000
Габариты L36:
X1=4861408.372 Y1=6255109.810 X2=5811800.493 Y2=7226965.858[/CODE]

ГИС Конструктор для Qt Designer x64 (версия 11.9.3, Qt 4, платформа x64, ОС Astra Linux Special Edition, релиз "Смоленск" версия 1.4) 26.01.2016

[CODE]Тестирование .TXF

MAPACCESSVERSION: 20151026
MAPAPIVERSION: 0x111212

Импортирование M48 затем O49
Габариты M48:
X1=5295854.000 Y1=18251130.860 X2=5790363.000 Y2=18736497.000
Габариты O49:
X1=6185405.000 Y1=19287850.630 X2=6681251.000 Y2=19700368.000

Импортирование O49 затем M48
Габариты O49:
X1=6185405.000 Y1=19287850.630 X2=6681251.000 Y2=19700368.000
Габариты M48:
X1=5295254.000 Y1=18251130.860 X2=5790963.000 Y2=18737097.000

Тестирование .SXF

MAPACCESSVERSION: 20151026
MAPAPIVERSION: 0x111212

Импортирование K37010 затем K3705
Габариты K37010:
X1=4836197.000 Y1=7618544.000 X2=4877620.000 Y2=7662579.000
Габариты K3705:
X1=4796669.000 Y1=7576554.000 X2=4879506.000 Y2=7664855.000

Импортирование K3705 затем K37010
Габариты K3705:
X1=4796669.000 Y1=7576554.000 X2=4879506.000 Y2=7664855.000
Габариты K37010:
X1=4836137.000 Y1=7618484.000 X2=4877680.000 Y2=7662639.000

Тестирование .DIR

MAPACCESSVERSION: 20151026
MAPAPIVERSION: 0x111212

Импортирование L36 затем O40
Габариты L36:
X1=4861408.372 Y1=6246873.411 X2=5811800.493 Y2=7226965.858
Габариты O40:
X1=6196171.831 Y1=10300350.612 X2=6669617.000 Y2=10693783.000

Импортирование O40 затем L36
Габариты O40:
X1=6196171.831 Y1=10300350.612 X2=6669617.000 Y2=10693783.000
Габариты L36:
X1=4861408.372 Y1=6246873.411 X2=5811800.493 Y2=7226965.858[/CODE]

Библиотеки для GIS ToolKit версия 11.12 29.01.2016

[CODE]Тестирование .DIR

MAPACCESSVERSION: 20160129
MAPAPIVERSION: 0x111300[/CODE]

Далее показывается MessageBox
[CODE]---------------------------
testdir.exe - Точка входа не найдена
---------------------------
Точка входа в процедуру @TMap@GetListDesc$qqri не найдена в библиотеке DLL d:\Downloads\gislib11-11.13.0\gislib11\gisvecex.dll.
---------------------------
ОК  
---------------------------[/CODE]
ImportFromAnySxf меняет окружение, Порядок вызова ImportFromAnySxf для разных карт влияет на значение габаритов
 
Давайте по порядку:
1. У меня на 11.12.4 порядок импорта влияет на цифры габаритов, в 11.13.0 не влияет. Для тех двух .TXF которые я присылал, до остального еще доберемся.
2. Проверьте на 11.12.4
3. Сообщите результаты для первого порядка импортирования (Пункт1) и для второго порядка импортирования (Пункт2). Будет два результат для двух карт.
Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 12 ... 14 След.



© КБ Панорама, 1991-2024

Регистрируясь или авторизуясь на форуме, Вы соглашаетесь с Политикой конфиденциальности