Pull to refresh

Web 2.0, бесплатные Api, Google Maps, кириллица или одна непростая ночь

Reading time 3 min
Views 948

И тут он говорит мне: «Как же это у нас сервис без карт? Это ж не Web 2.0!». Услышав сакраментальное «Web 2.0», я внутренне напрягся. Обычно это означает неделю работы без выходных, для реализации какой-нибудь красивой фигни, увиденной начальством на бескрайних просторах Интернета. Придав лицу умное выражение (и такое бывает), я принялся излагать трудности и опасности разработки приложения для работы с картами. Но мой полет мысли был варварски прерван.

«Есть же GoogleMaps. Там уже все сделано за нас. У них, я слышал, хорошее Api, к тому же бесплатное. Нужно только прикрутить по-быстрому. Работы-то на пару часов».

После ключевых фраз «по-быстрому» и «Работы-то на пару часов» я понял, что сегодняшний секс с девушкой накрылся медным тазом. Да и вообще на ближайшие дни моим постоянным половым партнером становится Internet Explorer.


Задача представлялась довольно не тривиальная, нужно было определить, откуда, из какого города пришел пользователь и отобразить на карте. То есть пользователь, увидев маленький красненький флажок, указывающий на его родимый Суходрищенск, начинает прыгать от счастья и остается на сайте навечно. Также нужно хранить координаты его любимых мест и, соответственно, подсвечивать их на карте.

На удивление Api оказалось довольно милое и даже отлично документированное, проблем позиционирования карт и управления маркером не было никаких. От радости я даже начал напевать песенки из репертуара любимых рок-групп. Видимо эти ужасающие звуки разбудили демонов программирования, и они решили мне отомстить.

Дело в том, что пока пользователь вводит данные о своем местоположении, его приходится позиционировать по geoip. Он возвращает координаты, а по ним нужно определить ближайший город и предъявить его. Но чтобы узнать координаты города, мне надо знать его название.

«Блин. Что же делать?» — сказал я (в литературном переводе).

Как что? Заранее узнать все координаты городов и сохранить их в базе. Узрев перед собой цель, я обрадовался и даже хотел запеть, но вовремя остановился (нечего напрасно тревожить демонов). Стоит ли говорить, что Google не понимает родные кириллические названия городов – толька по-английски. «Так надо же просто перевести!» — радостно взвыли демоны в моей голове (где-то в половине 1 ночи они сжалились над незавидной программерской долей и взялись помогать). Еще пару часов спустя получилось, что все не так радужно. То ли мои познания в грамматике, у меня, помнится, была 3 по русскому, то ли фаза луны, но автоматически генерировать английское название не получилось.

«И как же мне решить эту проблему?» — сказал я (нет, правда, я так и сказал: «И как же мне решить эту проблему?»). Мысль использовать какой-нибудь переводчик почему-то пришла не сразу…Через полчаса скрипт был готов. Еще пара минут — и все города переведены.

Остался последней шаг — получить эти проклятые всеми богами координаты.
Был написан и запущен еще один скрипт, я уже предвкушаю радость победы и ;%;%*? ММ(%У%;*?) (непереводимая игра слов). Google меня забанил!
«Наверное, на вашем компьютере завелся вирус». Ну что за фигня?! 20 000 запросов за один раз – нормальное поведение для пользователя. Я вживую быстрее серфю (у меня просто F5 западает, поэтому многие ресурсы думают, что я их досю).

Воздев руки к небу, я провозгласил: «Почему все добрые вещи нужно делать грязными способами?!»

Ну, конечно, старый добрый список бесплатных проксей выручил меня и на этот раз.

И вот (музыка туш) список городов у меня в базе. Громко поздравив себя (в 4 утра все равно в офисе никого нет), я с чувством выполненного долга отправился на поиски еды. Но это уже другая история…

А, да, совсем забыл. В любой истории должен быть смысл, ну, кроме историй про пятничные пьянки. А смысл в том, что если вы хотите пользоваться бесплатными Api, то приготовьтесь к тому, что всегда придется доводить до ума. Ведь разработчики пишут Api, руководствуясь своей, а не вашей функциональностью. Однако пользоваться благами других стоит. Просто посчитайте, сколько времени нужно писать собственный сервис карт! Тут критерий выбора наверно такой же, как и при выборе сторонних библиотек. Если функциональность ключевая для вашего start up’а, то однозначно пишите ее сами. То есть фотогалерея на базе Flickr вряд ли прокатит, а если это хоть и нужная, но фича, что ж, тогда можно позабавляться с чужим Api.

И еще, для любого (даже самого полезного и доброго дела) все же необходим список бесплатных proxy.

Tags:
Hubs:
+60
Comments 73
Comments Comments 73

Articles