SASGIS - Доработка карты (ZMP)
View Issue Details
0001504Доработка карты (ZMP)[All Projects] Багpublic16-08-2012 13:0520-08-2012 03:35
Parasite 
 
normalmajorrandom
newopen 
WindowsServer2003
0001504: Произвольная "расстыковка" тайлов при просмотре и сведении в файл
При просмотре и\или сведении в файл уже прокачанной карты - наблюдается расстыковка тайлов (они клеятся не точно встык, а со смещением). Точнее описать не могу - смотрите скриншот, там видно. Особое внимание - на диагональные полосы.

Проявляется на глубоких зумах (скрин - от 19го), как минимум на DG.
No tags attached.
jpg prrr.jpg (562,117) 16-08-2012 13:05
http://www.sasgis.org/mantis/file_download.php?file_id=974&type=bug
jpg zzz1.jpg (99,534) 16-08-2012 13:54
http://www.sasgis.org/mantis/file_download.php?file_id=975&type=bug
jpg

jpg Untitled-1.jpg (49,467) 16-08-2012 14:35
http://www.sasgis.org/mantis/file_download.php?file_id=976&type=bug
jpg
Issue History
16-08-2012 13:05ParasiteNew Issue
16-08-2012 13:05ParasiteFile Added: prrr.jpg
16-08-2012 13:10ParasiteSummaryПроизвольная "расстыковка" тайлов при просмотре и сведении в тайл => Произвольная "расстыковка" тайлов при просмотре и сведении в файл
16-08-2012 13:29ParasiteNote Added: 0008552
16-08-2012 13:54ParasiteFile Added: zzz1.jpg
16-08-2012 13:54ParasiteNote Added: 0008554
16-08-2012 13:55ParasiteDescription Updatedbug_revision_view_page.php?rev_id=4157#r4157
16-08-2012 13:55ParasiteNote Edited: 0008554bug_revision_view_page.php?bugnote_id=8554#r4159
16-08-2012 14:02ParasiteDescription Updatedbug_revision_view_page.php?rev_id=4160#r4160
16-08-2012 14:02ParasiteAdditional Information Updatedbug_revision_view_page.php?rev_id=4162#r4162
16-08-2012 14:29ParasiteProjectSAS.Планета => Доработка карты (ZMP)
16-08-2012 14:34ParasiteNote Added: 0008555
16-08-2012 14:35ParasiteFile Added: Untitled-1.jpg
17-08-2012 11:08Dima2000Note Added: 0008562
17-08-2012 13:53ParasiteNote Added: 0008567
17-08-2012 13:53ParasiteNote Edited: 0008567bug_revision_view_page.php?bugnote_id=8567#r4164
18-08-2012 02:07Dima2000Note Added: 0008568
18-08-2012 07:05ParasiteNote Added: 0008569
19-08-2012 12:59Dima2000Note Added: 0008573
20-08-2012 03:35ParasiteNote Added: 0008577

Notes
(0008552)
Parasite   
16-08-2012 13:29   
Координаты места
http://maps.google.com/?ll=13.417498,103.82013&spn=0.00251,0.004128&t=h&z=19
(0008554)
Parasite   
16-08-2012 13:54   
(edited on: 16-08-2012 13:55)
Добавил скриншот и с отображением тоже (prrr.jpg - это была склейка в файл)

(0008555)
Parasite   
16-08-2012 14:34   
Вот урлы на два соседних тайла которые генерятся САСом, при состыковке которых a ручками в фотошопе получаем картину маслом СО смещением:

http://image.globexplorer.com/gexservlets/gex?ls=49&tid=7015582451,7015582452,7015582453&cmd=image&id=7327000741&appid=030400A&iw=256&ih=297&projid=54004&xul=13992562.39788437&yul=4689877.47303353&xlr=13992638.83491265&ylr=4689788.79413730

http://image.globexplorer.com/gexservlets/gex?ls=49&tid=7015582451,7015582452,7015582453&cmd=image&id=7327000741&appid=030400A&iw=256&ih=297&projid=54004&xul=13992562.39788437&yul=4689877.47303353&xlr=13992638.83491265&ylr=4689788.79413730

(Untitled-1.jpg)
(0008562)
Dima2000   
17-08-2012 11:08   
>Вот урлы на два соседних тайла
Обе ссылки идентичны ...

Непонятно в чём именно глюк, в формировании url для закачки тайлов, в обрезании тайлов до 256*256, в пересчёте координат, в склейке? И есть ли он вообще, может это DG отдаёт такие сдвинутые тайлы?
Проверил у себя это же место (N13°25'02,63" E103°49'11,09"), тоже с DG (но в другой проекции? zmp вообще другой) - тоже чуть сдвинуты. Вот ссылка на один из тайлов , соседние можно легко получить меняя xi и yi.
На снимке гугла сдвиг отсутствует.
(0008567)
Parasite   
17-08-2012 13:53   
>На снимке гугла сдвиг отсутствует.
Угу. Но снимок гугла не юзает ни пересчет координат, ни обрезку получаемых тайлов...Вообще получение хорошего, годного DG - тот еще порн, посему тикет и открыл. И неясно - то ли сервер так криво отдает, то ли САС так пересчитывает\запрашивает... Напрягает то, что этот визуальный сдвиг меняется от снимка к снимку даже на той же области. Но вот механизма "проверить на сайте для конкретного TIDa" (как на Гугле допустим) лично мне для DG неизвестно, поэтому тикет и открыл.

Сегодяшние ковыряния показывают, что глюк скорее всего на стороне сервера. Если это подтвердится - тикет закрою. Но пока что нет 100% уверенности.

(0008568)
Dima2000   
18-08-2012 02:07   
>Но вот механизма "проверить на сайте для конкретного TIDa" (как на Гугле допустим) лично мне для DG неизвестно,
Как это? Сами же дали ссылки с перечислением трёх тидов (&tid=7015582451,7015582452,7015582453), разве это не они? Извиняйте, я в тидах нифига не понимаю ... :)
(0008569)
Parasite   
18-08-2012 07:05   
Нет, я не про то.
Я про то, что на DG для конкретного TIDa нет тайлов как таковых. Есть либо общее покрытие на Землю (не конкретные снимки, а просто вся Земля а-ля ГуглМапс) - и оно тайловое, но неизвестно как и на базе каких конкретных снимков (TID'ов) сделанное.

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

Можно проделать определенные операции в ZMP и попросить с сервера кусочек от целого снимка, указав нужные X\Y - сервер его "отрежет" от всего снимка на лету на своей стороне, наложит копирайты и отдаст. Пример этого я приложил в тикет, см.самую последнюю картинку. А на нашей стороне, соответственно, надо обрезать копирайты и получить тайл 256х256, кой и покласть в кэш. Повторить для каждого тайла.

И вот в пределах данного тикета и непонятно - то ли САС запрашивает с сервера немножко не те координаты чем нужно (а сервер правильно обрезает и правильно отдает), то ли САС просит верно - и глючит это все уже на стороне сервера, когда тот пытается вырезать запрошенную картинку из всего TIDа. И проверить-то не на чем, бо тайлов на TIDы нигде на сервере нет - мы их сами обрезаем и получаем на своей стороне, и какая угодно отсебятина может быть на обоих сторонах вопроса. Если это глючит сервер - то к САСу претензий нет разумеется, и это и предлагается выяснить в пределах этого тикета.

А с гуглом картина намного проще - там тайлы изначально уже нарезаны и готовые лежат на сервере, и мы их просто забираем оттуда и кладем к себе, никаких операций с ними на своей стороне не производя. Если они не стыкуются - то это они такие на сервере, инфа 100% и к сасу претензий нет.

С DG же все немножко сложнее и неоднозначнее, и косяк может быть и там и там. :)
(0008573)
Dima2000   
19-08-2012 12:59   
Спасибо за разъяснение, правда я почти ничего не понял. :)
Насчёт проверки.
Разве проблема отследить что именно за запрос отправляет САС серверу? Явно нет. Или сниффером, или в GetUrlScript.txt записать получившуюся строку в лог. Потом открыть готовую ссылку в браузере, сохранить полученный "тайл" (неправильного размера), обрезать руками точно как должен делать САС, сравнить результат с тайлом в кэше САСа (путь к тайлу САС показывает). Исключатся по крайней мере глюки с обрезкой.
Проверить правильность формирования url тоже можно, но тут надо додумать как именно, что-то голова не работает, но явно можно. ;) Наверное подобрать ручками правильные числа в ссылках (для нескольких соседних "тайлов") и сравнить с тем что наформирует САС. Может и проще можно.
(0008577)
Parasite   
20-08-2012 03:35   
>Исключатся по крайней мере глюки с обрезкой.
Выше, в шапке тикета, на последней картинке - как раз именно это.
Взяты два урла на соседние тайлы (урлы сгенерены САСом), запрошены браузером, и в Фотошопе склеены "встык". Обрезки никакой не делалось - просто результаты 2х САСовых урлов рядом, так что глюки обрезки исключаем.

Как видим - смещение присутствует даже при запросе браузером по САСовым координатам, и это смещение только по вертикали. Вопрос в том, САС это кривые координаты нам сгенерил, либо уже сервер округлил точные координаты на своей стороне и отдал нам "приблизительно то же место". Вероятность 50\50, о чем тикет и. :(
Так как это смещение по вертикали - то возможно где-то есть перепроецирование скорей всего, и где-то оно идет с недостаточной точностью. Утверждать не буду, но похоже именно на это. В сасе пересчет координат для запроса тайла с лого, который при обрезке даст нам точный тайл - делается вот тут, насколько я понимаю:
-----------------------------
 i:=pos('?',GetURLBase);
 ResultURL:=copy(GetURLBase,1,i);
 xy.x:=GetX*256;
 xy.y:=GetY*256-24;
 LL:=Converter.Pos2LonLat(XY,GetZ+7);
 topM:=Converter.LonLat2Metr(LL);
 xy.x:=(GetX+1)*256;
 xy.y:=(GetY+1)*256+17;
 LL:=Converter.Pos2LonLat(XY,GetZ+7);
 bottomM:=Converter.LonLat2Metr(LL);
-----------------------------

То есть, вот эти вот Converter.Pos2LonLat, Converter.LonLat2Metr надо бы и проверить тем, кто в сорцах разбирается....