Comments 58
А у нас совсем весело. Мало того, что г. Тольятти подписан Самарой, так еще Автозаводским районом назвали Центральный район. И что-то не нашел я как посмотреть спутниковый снимок.
0
Над картой на синей полосе ткнуть в «Aerial».
На карту лучше вообще не смотреть. Кажется, они пользовались какими-то картами 20-летней давности (судя по отсутствию части станций метро и названию города Ленинград).
На карту лучше вообще не смотреть. Кажется, они пользовались какими-то картами 20-летней давности (судя по отсутствию части станций метро и названию города Ленинград).
+1
я добавил ссылку на то что у меня вышло dl.getdropbox.com/u/930263/2.html
Там есть возможность переключатся между космоснимком от Google (кнопка спутник) и от Live.com (кнопка Live.com). Названия улиц в режиме гибрид берутся с Гугл.
Там есть возможность переключатся между космоснимком от Google (кнопка спутник) и от Live.com (кнопка Live.com). Названия улиц в режиме гибрид берутся с Гугл.
0
Еще на карте сотни несуществующих деревень и поселков.
0
Да и сами снимки бородатые. По крайней мере карты севера Питера были сделаны где-то лет 8 назад. Ну и плюс ко всему баги, типа дороги по озеру.
0
Тоже этим занимался. Правый берег моего города на гугле свежий (2007г) и хорошего качества, а вот левый берег в очень низком разрешении. Писал скрипт, берущий карты с яху для нужного участка.
0
UFO just landed and posted this here
Забавно.
У Гугла проекция своя собственная, отличающаяся от стандартной меркаторовской ESRI:54004.
Выходит, некрософт у них не только тайлинг, но и проекцию потырила! Ололо!
У Гугла проекция своя собственная, отличающаяся от стандартной меркаторовской ESRI:54004.
Выходит, некрософт у них не только тайлинг, но и проекцию потырила! Ололо!
+2
А чем у гугла проекция отличается от Меркатора? И что значит стандартный?
groups.google.com/group/Google-Maps-API/msg/8222b18e7921f6e6?pli=1
en.wikipedia.org/wiki/Mercator_projection
groups.google.com/group/Google-Maps-API/msg/8222b18e7921f6e6?pli=1
en.wikipedia.org/wiki/Mercator_projection
0
Теперь все стало яснее.
spatialreference.org/ref/sr-org/6/html/
spatialreference.org/ref/esri/54004/html/
Обе проекции используют стандартные меркаторы (только с различными начальными параметрами) — 1SP и 2SP.
Что же касается разницы (помимо разных вариаций меркатора) — гугл использует более грубый сфероид. Упрощение заключается в том, что их «глобус» не сплющен вдоль оси.
Спасибо за наводку )
spatialreference.org/ref/sr-org/6/html/
spatialreference.org/ref/esri/54004/html/
Обе проекции используют стандартные меркаторы (только с различными начальными параметрами) — 1SP и 2SP.
Что же касается разницы (помимо разных вариаций меркатора) — гугл использует более грубый сфероид. Упрощение заключается в том, что их «глобус» не сплющен вдоль оси.
Спасибо за наводку )
+1
Если так, то и впрямь забавно — тайлы сходной структуры не только они делают.
А если все таки у MS стандартный меркатор?
Тайлинг близкий должен получаться — в пределах средней точности покрытия. Где здесь эллипс существенно скажется? Я не соображу с ходу, как проверить.
А если все таки у MS стандартный меркатор?
Тайлинг близкий должен получаться — в пределах средней точности покрытия. Где здесь эллипс существенно скажется? Я не соображу с ходу, как проверить.
0
Интересно, карты с лайв.ком, а управление и ссылки на гугл. Как-то это не правильно, мягко говоря.
0
«Удивив вот эту сылку»
Ну и как, ссылка сильно была удивлена?
Ну и как, ссылка сильно была удивлена?
+1
понятно, что автор стал изобретать велосипед, но ведь сделал же, реализовал, и здесь выложил свои душевные переживания (аж ссылки удивились), вопрос теперь в другом: вомзожно ли как-то автоматом определять, у какого из геосервисов спутниковое изображение одного и того же участка лучше, чтобы его и отображать?
0
>Что такое java
javascript все-таки, а так отличный эксперимент!
javascript все-таки, а так отличный эксперимент!
+2
Проверил сам — снимки на live maps и google maps для моего города одинаковые, но на гугле чуть детальнее. Нет в мире совершенства…
+1
Грозный то де не видно, половина города + Ханкала закрыты то ли облаками, то ли специально замазали
0
Вручную подставляя циферки с карты мира дошел до своего дома… прикольно )
+2
Гы. В Live у нас даже районы города обозначены, латиницей. Я и не знал, что они так называются: Zabolot'ye, Zatropov'ye.
0
Очень круто. Сам из Табмова — всегда хотел посомтреть на родной город в нормальном разрешении! Спасибо!
0
Это всё, конечно, хорошо, но условия использования тайлов Live.com запрещают обращение к ним не через их собственное API. Как и Google. Так что если хотите, чтобы это было легально — придётся вам извращаться с интеграцией обоих API между собой. :)
Кстати, эта работа была уже давно до вас проделана. :) Смотрите mapstraction.com/
Кстати, эта работа была уже давно до вас проделана. :) Смотрите mapstraction.com/
+1
Сервис супер
но нету яндекса )
также непонятно почему они используют контролсы от гугла.
но нету яндекса )
также непонятно почему они используют контролсы от гугла.
0
Кажется идеальной была бы библиотека, которая сама рисовала управление, точки, линии. При переключении на другую карту менялась только подложка. Ну и API для разных сервисов общий.
Случайно такой не знаете? )
Случайно такой не знаете? )
0
Есть невероятно мощная и тяжелая либа OpenLayers (http://openlayers.org/) — она предоставляет общий интерфейс, но очень тормозная, неудобна в использовании и всё равно использует API других сервисов.
Чистой же либы, использующей картинки разных провайдеров данных напрямую, не может существовать в принципе, как я упоминал выше, из-за ограничений Terms of Use соответствующих продуктов.
Чистой же либы, использующей картинки разных провайдеров данных напрямую, не может существовать в принципе, как я упоминал выше, из-за ограничений Terms of Use соответствующих продуктов.
+1
Отличная статья! А вы не думали, как можно тайлы от Яндекс-карт подвзять к гуглкартам? Може уже есть такой проект?
Просто у гуглкарт отличное API, например мне очень нрафится функция отрисовки KML на карте. А у яндекса более детализированные карты Украины, России.
Просто у гуглкарт отличное API, например мне очень нрафится функция отрисовки KML на карте. А у яндекса более детализированные карты Украины, России.
+2
поддерживаю
яндекс тайлы + google карты\апи очень бы пригодились
яндекс тайлы + google карты\апи очень бы пригодились
0
Думаю не проблема…
Но тайлы Яндекса немного не совпадают с Гугловскими тайлами.
![](https://habrastorage.org/getpro/geektimes/comment_images/e64/d2e/99f/e64d2e99ffe637352696bd381771973b.gif)
Но тайлы Яндекса немного не совпадают с Гугловскими тайлами.
![](https://habrastorage.org/getpro/geektimes/comment_images/e64/d2e/99f/e64d2e99ffe637352696bd381771973b.gif)
0
Погорячился, при другом увеличении границы тайлов Яндекса не совпадают с границами тайлов Гугл.
Поюзайте программу SAS.Планета sasgis.ru/
если уж очень нужно яндекс тайлы + google карты\апи то предлагаю альтернативное решение. Через SAS.Планета скачать нужный участок в кеш, склеить и нарезать на тайлы самостоятельно. После этого использовать гуглапи со своими тайлами.
Поюзайте программу SAS.Планета sasgis.ru/
если уж очень нужно яндекс тайлы + google карты\апи то предлагаю альтернативное решение. Через SAS.Планета скачать нужный участок в кеш, склеить и нарезать на тайлы самостоятельно. После этого использовать гуглапи со своими тайлами.
0
SAS.планету знаю, использую, но хочу веб-решение =)
А по поводу скачать и нарезать — даже для одной области и 12 уровней зума это выходит уже нетривиальное решение.
В google maps api ведь даже есть функционал необходимый, для подключения тайлов карт собственных… вот только я не силен в географии, системах координат, проекциях, поэтому не осилю эту задачу…
А по поводу скачать и нарезать — даже для одной области и 12 уровней зума это выходит уже нетривиальное решение.
В google maps api ведь даже есть функционал необходимый, для подключения тайлов карт собственных… вот только я не силен в географии, системах координат, проекциях, поэтому не осилю эту задачу…
0
сделайте сначала для одного уровня ЗУМА, а потом решите нужно ли Вам все 12 уровней.
Я тоже в этом не силен, я просто прочитал вот это karta39.ru/blog/2009/01/26/kratkoe-rukovodstvo-po-dobavleniu-sobstvennix-kart-na-google-maps/ и сделал все как там написано, а после уже появилась эта идея…
Я тоже в этом не силен, я просто прочитал вот это karta39.ru/blog/2009/01/26/kratkoe-rukovodstvo-po-dobavleniu-sobstvennix-kart-na-google-maps/ и сделал все как там написано, а после уже появилась эта идея…
0
Нарезать свою карту на тайлы можно довольно просто — с помощью Global Mapper версии >10.02. Достаточно скормить ей растр с привязкой полученный из SAS.Планета и в меню Export web format s выбрать Google Maps tiles.
0
Как я уже ответил 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.
Несовпадение границ тайлов 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.
+1
Опубликовал это как пробную первую статью: shuisky.habrahabr.ru/blog/60508/
Если у вас или других пользователей есть вопросы, задавай там. Можно списком. По возможности ответим.
_______________________
Разработчики SAS.Планета
Если у вас или других пользователей есть вопросы, задавай там. Можно списком. По возможности ответим.
_______________________
Разработчики SAS.Планета
0
maps.obana.info — тут уже все сделано так, что бы можно было одни и те же места из разных карт можно было просматривать
0
Скрестить бы вместе гугловые, майкрософтоские и яндексовские карты… Ижевск, например, в хорошем разрешении есть только в яндексе, а в гугле лишь местами.
0
Хохо, нашёл дом своей бабушки :)
0
Привет Тамбову! Почти родной город :-)
0
Очень старые фотки, у нас уже три тысячи раз все поменялось )
0
ниасилил трактат, но аффтар наверно не видел программы SAS.Планета — погугли, посмотри )
-1
Уже давно пользуюсь программой SASGIS — очень выручает (да и просто интересно мир посмотреть). А благодаря возможности выбора карт и слоев — для меня лучше, чем Google Earth. Особенно пригодилась, когда на майские праздники в Казань ездил.
Просто дома загрузил карту области (выделенный фрагмент) с нужной мне детализацией (8-18), а уже на месте работал с кэшем.
Большой плюс в том, что я в сети Яндекса (Яндекс.Локальная сеть). Соответственно, загрузка карт и дополнительных слоев с него идет очень быстро.
Просто дома загрузил карту области (выделенный фрагмент) с нужной мне детализацией (8-18), а уже на месте работал с кэшем.
Большой плюс в том, что я в сети Яндекса (Яндекс.Локальная сеть). Соответственно, загрузка карт и дополнительных слоев с него идет очень быстро.
0
Хм, ГИС это конечно интересно. ТОлько вот мой город обрезан на Гуглозёме, а на других сервисах — фотографии низкого разрешения.
0
Хммм…
Спасибо большое, хоть посмотрел, как выглядело Митино лет 8 назад. Карты на live настолько старые, что страшно становится
Спасибо большое, хоть посмотрел, как выглядело Митино лет 8 назад. Карты на live настолько старые, что страшно становится
0
Sign up to leave a comment.
Эксперимент: Как это работает… maps.google.com+maps.live.com