API Карт Google отлично справляется с поиском соответствия почти для каждого запроса. Но если меня интересуют только реальные местоположения, как я могу отфильтровать догадки Google?
Например, в соответствии с Google, "under a rock
" находится в "The Rock, Shifnal, Shropshire TF11, UK
". Но человек, который отвечает на вопрос: "Где ты?" с "Под скалой" не означает, что они находятся в Шропшире, Великобритания. Вместо этого они просто не хотят вам рассказывать - ну, либо это, либо они в реальной беде, к счастью, с доступом в Интернет, застряли под какой-то скалой.
У меня есть несколько миллионов пользовательских строк местоположения, к которым я пытаюсь найти координаты. Если кто-то пишет "под скалой", я предпочел бы просто оставить координаты null
вместо того, чтобы помещать явно неправильную точку в Шропшире, Великобритания.
Вот несколько других примеров:
- под скалой = > Шропшир, Великобритания
- планета Земля = > Чешир, Великобритания
- nowhere = > Scituate, RI, USA
- travelling = > Мадрид, Испания
- hiding = > Андерсон, Калифорния, США
- global = > Мидленд, Техас, США
- в Интернете = > Северная часть, ВКЛ, Канада
- internet = > Frisco, TX, USA
- worldwide = > Префектура Ми, Япония
В конечном итоге я получаю твердый способ вернуть координаты из строки, но вернет false, если местоположение похоже на предыдущее.
Мне нужно создать функцию, которая возвращает следующее:
- Города-побратимы = > Возврат разговорных координат Миннеаполиса-Сент. Пол
- прямо за вами = > false [Google получает это "правильно" - по крайней мере, для моих целей]
- под скалой = > false
- nowhere = > false
- Canada = > Возвращаемые координаты
- Район миссии Сан-Франциско = > Возвращаемые координаты
- Chicago = > Возвращаемые координаты
- галактика далеко далеко = > false [Google также получает это "право" - нулевые результаты]
Что вы рекомендуете?
Здесь представлен массив с разделителями-запятыми, чтобы вы могли играть дома:
'twin cities','right behind you','under a rock','nowhere','canada','mission district san francisco','chicago','a galaxy far far away','london, england','1600 pennsylvania ave, washington, d.c.','california','41.87194,12.56738','global','worldwide','on the internet','mars'
И вот формат URL:
'http://maps.googleapis.com/maps/api/geocode/json?address=' + query + '&sensor=false'
ex: http://maps.googleapis.com/maps/api/geocode/json?address=twin+cities&sensor=false