Notes |
|
|
Координаты места
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 - это была склейка в файл)
|
|
|
|
Вот урлы на два соседних тайла которые генерятся САСом, при состыковке которых 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) |
|
|
|
>Вот урлы на два соседних тайла
Обе ссылки идентичны ...
Непонятно в чём именно глюк, в формировании url для закачки тайлов, в обрезании тайлов до 256*256, в пересчёте координат, в склейке? И есть ли он вообще, может это DG отдаёт такие сдвинутые тайлы?
Проверил у себя это же место (N13°25'02,63" E103°49'11,09"), тоже с DG (но в другой проекции? zmp вообще другой) - тоже чуть сдвинуты. Вот ссылка на один из тайлов , соседние можно легко получить меняя xi и yi.
На снимке гугла сдвиг отсутствует. |
|
|
|
>На снимке гугла сдвиг отсутствует.
Угу. Но снимок гугла не юзает ни пересчет координат, ни обрезку получаемых тайлов...Вообще получение хорошего, годного DG - тот еще порн, посему тикет и открыл. И неясно - то ли сервер так криво отдает, то ли САС так пересчитывает\запрашивает... Напрягает то, что этот визуальный сдвиг меняется от снимка к снимку даже на той же области. Но вот механизма "проверить на сайте для конкретного TIDa" (как на Гугле допустим) лично мне для DG неизвестно, поэтому тикет и открыл.
Сегодяшние ковыряния показывают, что глюк скорее всего на стороне сервера. Если это подтвердится - тикет закрою. Но пока что нет 100% уверенности.
|
|
|
|
>Но вот механизма "проверить на сайте для конкретного TIDa" (как на Гугле допустим) лично мне для DG неизвестно,
Как это? Сами же дали ссылки с перечислением трёх тидов (&tid=7015582451,7015582452,7015582453), разве это не они? Извиняйте, я в тидах нифига не понимаю ... :) |
|
|
|
Нет, я не про то.
Я про то, что на DG для конкретного TIDa нет тайлов как таковых. Есть либо общее покрытие на Землю (не конкретные снимки, а просто вся Земля а-ля ГуглМапс) - и оно тайловое, но неизвестно как и на базе каких конкретных снимков (TID'ов) сделанное.
И там же есть сами TIDы (конкретные спутниковые снимки конкретных мест от разных дат, длинными полосами согласно пролета спутника над этим местом). У каждого из этих снимков есть конкретные границы - это не общее покрытие на Землю, эти снимки там как раз в виде целых снимков для продажи данной конторой за деньги, а не для показа всем желающим. То есть, TIDовских тайлов как таковых там нет.
Можно проделать определенные операции в ZMP и попросить с сервера кусочек от целого снимка, указав нужные X\Y - сервер его "отрежет" от всего снимка на лету на своей стороне, наложит копирайты и отдаст. Пример этого я приложил в тикет, см.самую последнюю картинку. А на нашей стороне, соответственно, надо обрезать копирайты и получить тайл 256х256, кой и покласть в кэш. Повторить для каждого тайла.
И вот в пределах данного тикета и непонятно - то ли САС запрашивает с сервера немножко не те координаты чем нужно (а сервер правильно обрезает и правильно отдает), то ли САС просит верно - и глючит это все уже на стороне сервера, когда тот пытается вырезать запрошенную картинку из всего TIDа. И проверить-то не на чем, бо тайлов на TIDы нигде на сервере нет - мы их сами обрезаем и получаем на своей стороне, и какая угодно отсебятина может быть на обоих сторонах вопроса. Если это глючит сервер - то к САСу претензий нет разумеется, и это и предлагается выяснить в пределах этого тикета.
А с гуглом картина намного проще - там тайлы изначально уже нарезаны и готовые лежат на сервере, и мы их просто забираем оттуда и кладем к себе, никаких операций с ними на своей стороне не производя. Если они не стыкуются - то это они такие на сервере, инфа 100% и к сасу претензий нет.
С DG же все немножко сложнее и неоднозначнее, и косяк может быть и там и там. :) |
|
|
|
Спасибо за разъяснение, правда я почти ничего не понял. :)
Насчёт проверки.
Разве проблема отследить что именно за запрос отправляет САС серверу? Явно нет. Или сниффером, или в GetUrlScript.txt записать получившуюся строку в лог. Потом открыть готовую ссылку в браузере, сохранить полученный "тайл" (неправильного размера), обрезать руками точно как должен делать САС, сравнить результат с тайлом в кэше САСа (путь к тайлу САС показывает). Исключатся по крайней мере глюки с обрезкой.
Проверить правильность формирования url тоже можно, но тут надо додумать как именно, что-то голова не работает, но явно можно. ;) Наверное подобрать ручками правильные числа в ссылках (для нескольких соседних "тайлов") и сравнить с тем что наформирует САС. Может и проще можно. |
|
|
|
>Исключатся по крайней мере глюки с обрезкой.
Выше, в шапке тикета, на последней картинке - как раз именно это.
Взяты два урла на соседние тайлы (урлы сгенерены САСом), запрошены браузером, и в Фотошопе склеены "встык". Обрезки никакой не делалось - просто результаты 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 надо бы и проверить тем, кто в сорцах разбирается.... |
|