Про карты в интернете

Пытаюсь соорудить приложение на Android, отображающее много разных карт :) Первая попытка — взять WebView, а в него запихать Leaflet, оказалась довольно геморной и неудачной — карта подтормаживала, а при неудачном стечении обстоятельств — выделялась в этом WebView и напрочь отказывалась работать. Более того, оценив размер геморроя, который возникнет, если я захочу, к примеру, перемещать карту вслед за GPS-координатами мобильника, я решил поискать другие решения. Да и вообще, слово Turducken в программировании считается ругательным (а в кулинарии — вовсе нет).

Правда, на Leaflet можно было работать с целой тучей карт. Загибайте пальцы — Bing (схема и спутник), Google (схема и спутник), куча вариаций OSM, ArcGIS (спутник, схема и карта высот), 2ГИС и, по моему опыту, один из лучших вариантов — три карты Яндекса — схема, спутник и «народная», одна из наиболее точных и удобных. Но недостатки, к сожалению, перевесили :(

На текущий момент я остановился на osmdroid (если наркоманский github все же прикроют — то что-то осталось на Google Code). Так как OSM — штука довольно популярная, то довольно легко удалось запихнуть туда все карты из перечисленных, кроме Яндекса (умники, которые сейчас начнут рассказывать о лицензионных соглашениях картографических сервисов, идут лесом на йух). Наш любимый поисковик решил выпендриться и использовать не сферическую проекцию Меркатора, как подавляющее большинство картографических сервисов в Интернете, а эллиптическую.

Способ «подружить» osmdroid и яндексовские карты нашелся — но работает он немного странно. Более того, разработчики osmdroid в свежих версиях использовать его не рекомендуют — так как сейчас разрабатывается механизм для поддержки произвольных картографических проекций. Впрочем, карта показывается — так что «программа-минимум» по замене Leaflet выполнена.

Но эти «дневники» малоинтересны — а надо бы вытащить на свет божий какую-нибудь гадость и с мерзостной улыбочкой спросить «Ну че?» В качестве такой гадости — рассказы трех «корпораций зла» о картографических проекциях. Итак номер первый, Microsoft и их Bing.

http://msdn.microsoft.com/en-us/library/bb259689.aspx

Очень неплохая статья, содержащая, пожалуй, главное для интересующегося темой программиста — пример кода, достаточного для работы с картами Bing.

Номер второй — Google.

https://developers.google.com/maps/documentation/javascript/maptypes?hl=ru#MapCoordinates

А тут — ни единого примера кода, так как Google на безальтернативной основе требует использовать свой API. Ну хоть представление о нумерации тайлов карты есть, спасибо и на этом.

И наконец, гигант отечественного интернета, Яндекс:

https://tech.yandex.ru/maps/doc/theory/concepts/coordinates-docpage/

Довольно бессвязный текст, содержащий чертову тучу лишней информации. Особенно радуют соседствующие выражения типа «Яндекс.Карты, как и большинство других геоинформационных сервисов, используют проекцию Меркатора» — а рядом «В отличие от некоторых других картографических сервисов, Яндекс.Карты используют эллиптическую (согласно WGS 84), а не сферическую проекцию Меркатора». Ну и опять же — «используйте наш API».

Ну а теперь — риторический вопрос — какая из трех «корпораций зла» построила свой бизнес на программировании, а не на продаже рекламы?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *