Как стать автором
Обновить

Комментарии 58

А у нас совсем весело. Мало того, что г. Тольятти подписан Самарой, так еще Автозаводским районом назвали Центральный район. И что-то не нашел я как посмотреть спутниковый снимок.
Над картой на синей полосе ткнуть в «Aerial».

На карту лучше вообще не смотреть. Кажется, они пользовались какими-то картами 20-летней давности (судя по отсутствию части станций метро и названию города Ленинград).
я добавил ссылку на то что у меня вышло dl.getdropbox.com/u/930263/2.html
Там есть возможность переключатся между космоснимком от Google (кнопка спутник) и от Live.com (кнопка Live.com). Названия улиц в режиме гибрид берутся с Гугл.
Еще на карте сотни несуществующих деревень и поселков.
Да и сами снимки бородатые. По крайней мере карты севера Питера были сделаны где-то лет 8 назад. Ну и плюс ко всему баги, типа дороги по озеру.
Да не «где-то», а восемь лет назад. Почему? Потому что сфотографирована моя машина около дома, которую я продал семь лет назад :))))
Тоже этим занимался. Правый берег моего города на гугле свежий (2007г) и хорошего качества, а вот левый берег в очень низком разрешении. Писал скрипт, берущий карты с яху для нужного участка.
НЛО прилетело и опубликовало эту надпись здесь
простите неграмошный я, поправил. спасибо за замечание.
Забавно.
У Гугла проекция своя собственная, отличающаяся от стандартной меркаторовской ESRI:54004.
Выходит, некрософт у них не только тайлинг, но и проекцию потырила! Ололо!
Теперь все стало яснее.

spatialreference.org/ref/sr-org/6/html/
spatialreference.org/ref/esri/54004/html/

Обе проекции используют стандартные меркаторы (только с различными начальными параметрами) — 1SP и 2SP.

Что же касается разницы (помимо разных вариаций меркатора) — гугл использует более грубый сфероид. Упрощение заключается в том, что их «глобус» не сплющен вдоль оси.

Спасибо за наводку )
Если так, то и впрямь забавно — тайлы сходной структуры не только они делают.

А если все таки у MS стандартный меркатор?
Тайлинг близкий должен получаться — в пределах средней точности покрытия. Где здесь эллипс существенно скажется? Я не соображу с ходу, как проверить.
Интересно, карты с лайв.ком, а управление и ссылки на гугл. Как-то это не правильно, мягко говоря.
а я виноват, что мой город google не детализирует, а на live.com поиск кириллицей не находит. Вот и получился такой симбиоз двух сервисов. Интересно кстати сравнить одну и ту же поверхность от разных сервисов.
«Удивив вот эту сылку»
Ну и как, ссылка сильно была удивлена?
спасибо, теперь исправил, впопыхах первый раз не то исправил :)
понятно, что автор стал изобретать велосипед, но ведь сделал же, реализовал, и здесь выложил свои душевные переживания (аж ссылки удивились), вопрос теперь в другом: вомзожно ли как-то автоматом определять, у какого из геосервисов спутниковое изображение одного и того же участка лучше, чтобы его и отображать?
лучше — понятие субъективное, я думаю каждый решит сам какой спутниковый снимок его города лучше.
А вот с автоматической переключением на сторонний сервис при отсутствии тайла с нужным масштабом думаю можно что нибудь придумать.
>Что такое java
javascript все-таки, а так отличный эксперимент!
Значит что такое java я таки и не знаю до сих пор :)
Проверил сам — снимки на live maps и google maps для моего города одинаковые, но на гугле чуть детальнее. Нет в мире совершенства…
они не детальнее — они абсолютно одинаковые: см. например машины на дорогах.
Ну я по ним машинкам как раз и разглядел, что снимки одинаковые. Только похоже, что у гугла можно приблизить поболее.
Грозный то де не видно, половина города + Ханкала закрыты то ли облаками, то ли специально замазали
Вручную подставляя циферки с карты мира дошел до своего дома… прикольно )
Гы. В Live у нас даже районы города обозначены, латиницей. Я и не знал, что они так называются: Zabolot'ye, Zatropov'ye.
Очень круто. Сам из Табмова — всегда хотел посомтреть на родной город в нормальном разрешении! Спасибо!
Это всё, конечно, хорошо, но условия использования тайлов Live.com запрещают обращение к ним не через их собственное API. Как и Google. Так что если хотите, чтобы это было легально — придётся вам извращаться с интеграцией обоих API между собой. :)

Кстати, эта работа была уже давно до вас проделана. :) Смотрите mapstraction.com/
Сервис супер
но нету яндекса )
также непонятно почему они используют контролсы от гугла.
Это OpenSource-библиотека, можете попробовать добавить поддержку Яндекса сами. :) Это должно быть несложно.

Контролы они используют разные в зависимости от выбранного провайдера.
Кажется идеальной была бы библиотека, которая сама рисовала управление, точки, линии. При переключении на другую карту менялась только подложка. Ну и API для разных сервисов общий.

Случайно такой не знаете? )
Есть невероятно мощная и тяжелая либа OpenLayers (http://openlayers.org/) — она предоставляет общий интерфейс, но очень тормозная, неудобна в использовании и всё равно использует API других сервисов.

Чистой же либы, использующей картинки разных провайдеров данных напрямую, не может существовать в принципе, как я упоминал выше, из-за ограничений Terms of Use соответствующих продуктов.
Отличная статья! А вы не думали, как можно тайлы от Яндекс-карт подвзять к гуглкартам? Може уже есть такой проект?

Просто у гуглкарт отличное API, например мне очень нрафится функция отрисовки KML на карте. А у яндекса более детализированные карты Украины, России.
поддерживаю
яндекс тайлы + google карты\апи очень бы пригодились
Думаю не проблема…
Но тайлы Яндекса немного не совпадают с Гугловскими тайлами.
Погорячился, при другом увеличении границы тайлов Яндекса не совпадают с границами тайлов Гугл.
Поюзайте программу SAS.Планета sasgis.ru/

если уж очень нужно яндекс тайлы + google карты\апи то предлагаю альтернативное решение. Через SAS.Планета скачать нужный участок в кеш, склеить и нарезать на тайлы самостоятельно. После этого использовать гуглапи со своими тайлами.
SAS.планету знаю, использую, но хочу веб-решение =)
А по поводу скачать и нарезать — даже для одной области и 12 уровней зума это выходит уже нетривиальное решение.

В google maps api ведь даже есть функционал необходимый, для подключения тайлов карт собственных… вот только я не силен в географии, системах координат, проекциях, поэтому не осилю эту задачу…
сделайте сначала для одного уровня ЗУМА, а потом решите нужно ли Вам все 12 уровней.
Я тоже в этом не силен, я просто прочитал вот это karta39.ru/blog/2009/01/26/kratkoe-rukovodstvo-po-dobavleniu-sobstvennix-kart-na-google-maps/ и сделал все как там написано, а после уже появилась эта идея…
спасибо за ссылку, почитаю. А по поводу зума — да, реально нужны все уровни…
Нарезать свою карту на тайлы можно довольно просто — с помощью Global Mapper версии >10.02. Достаточно скормить ей растр с привязкой полученный из SAS.Планета и в меню Export web format s выбрать Google Maps tiles.
Как я уже ответил baxtep2:

Несовпадение границ тайлов google и yandex происходит из-за различия в проекции
В google — меркатор на сферу, в yandex — на эллипсоид.
При отображении небольших областей достаточно просто сдвинуть тайл яндекса относительно гугл:

1. Находим географические к-ты левого верхнего угла гугл-тайла.
Lon = ((xG)-zoom/2)/(zoom/360)
Lat = ((yG)-zoom/2)/-(zoom/(2*PI))
Lat = (2*arctan(exp(Lat))-PI/2)*180/PI
где zoom — масштаб 0..24
xG,yG — к-ты пикселя верхнего левого угла гугл-тайла.

2. Находим к-ты пикселя на яндекс-карте соответствующие найденным выше географическим к-там, для этого можно воспользоваться:

z = sin(Lat*deg)
c = (PixelsAtZoom]/(2*Pi))
x = round(PixelsAtZoom/2+Lon*(PixelsAtZoom/360)) //x можно не считать, он будет таким же как у гугл, смещение идет только по широте.
y = round(PixelsAtZoom/2-c*(ArcTanh(z)-exct*ArcTanh(exct*z))
где
PixelsAtZoom — размер всей карты в пикселях на нужном масштабе (256,512,1024 итд).
Lat,Lon — соответственно широта и долгота
exct — эксцентриситет эллипсоида, равен sqrt(radiusa*radiusa-radiusb*radiusb)/radiusa;
где sradiusa=6378137
sradiusb=6378137

3. Находим к-ты яндекс-тайла:
xT = x div 256 //опять же, необязательно, x будет совпадать с гугл.
yT = y div 256
по этим к-ам загружаем яндекс-тайл:
sat01.maps.yandex.net/tiles?l=sat&v=1.8.0&x=&y=&z=;
где zoom — масштаб 0..24
4. Находим смещение яндекс-тайла относительно гугл-тайла:
dx = x mod 256
dy = y mod 256
где x,y — к-ты пикселя полученные на 2м шаге.
Все. Теперь достаточно вывести тайлы полученные на шаге 3 со смещением, полученным на шаге 4, относительно тайлов google.
Опубликовал это как пробную первую статью: shuisky.habrahabr.ru/blog/60508/

Если у вас или других пользователей есть вопросы, задавай там. Можно списком. По возможности ответим.
_______________________
Разработчики SAS.Планета

maps.obana.info — тут уже все сделано так, что бы можно было одни и те же места из разных карт можно было просматривать
да согласен, но нет как раз того, что я сделал там нет.

(космоснимки от Live.com, а названия улиц от Google.com)
Скрестить бы вместе гугловые, майкрософтоские и яндексовские карты… Ижевск, например, в хорошем разрешении есть только в яндексе, а в гугле лишь местами.
ижевск хорошо проработан на дижитал глобе
Хохо, нашёл дом своей бабушки :)
Привет Тамбову! Почти родной город :-)
Очень старые фотки, у нас уже три тысячи раз все поменялось )
ниасилил трактат, но аффтар наверно не видел программы SAS.Планета — погугли, посмотри )
последняя строчка трактата
«UPD: Уже после написания, я узнал о программе SASGIS, в которой все это уже реализовано… „
Уже давно пользуюсь программой SASGIS — очень выручает (да и просто интересно мир посмотреть). А благодаря возможности выбора карт и слоев — для меня лучше, чем Google Earth. Особенно пригодилась, когда на майские праздники в Казань ездил.

Просто дома загрузил карту области (выделенный фрагмент) с нужной мне детализацией (8-18), а уже на месте работал с кэшем.

Большой плюс в том, что я в сети Яндекса (Яндекс.Локальная сеть). Соответственно, загрузка карт и дополнительных слоев с него идет очень быстро.
Хм, ГИС это конечно интересно. ТОлько вот мой город обрезан на Гуглозёме, а на других сервисах — фотографии низкого разрешения.
Хммм…
Спасибо большое, хоть посмотрел, как выглядело Митино лет 8 назад. Карты на live настолько старые, что страшно становится
все зависит от места. Не забывайте, что Земля гораздо больше чем Московская область…
Снимок Тамбова вполне свежий, а других вообще нет ни на одном сервисе
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации