Учитывая координаты GPS, как мне найти близлежащие достопримечательности или достопримечательности? - PullRequest
9 голосов
/ 13 апреля 2010

Я только что купил смартфон Google Nexus One, и я хочу написать небольшое приложение для Android для удовольствия. Предположим, что я могу получить свои текущие координаты GPS, так как же тогда я могу программно найти близлежащие ориентиры или достопримечательности в пределах некоторого радиуса? Существует ли API для получения геотегированных ориентиров GPS, как в базе данных Google Планета Земля?

Например, если я нахожусь в центре Чикаго, моя программа будет указывать мне на все "туристические" вещи для посещения в этом городе.

В идеале, все это будет работать на моем смартфоне, но при необходимости я могу сделать так, чтобы смартфон запросил веб-сервер, который затем запустил бы больше запросов.

Ответы [ 5 ]

4 голосов
/ 25 мая 2010

Зависит от того, откуда вы получаете данные ориентира.Если вы хотите выполнить веб-запрос, вы можете выполнить одно из указанных выше действий.

В качестве альтернативы - если у вас есть свои собственные данные, вы можете сохранить их в БД со значениями lat и lon, а затем сформировать ограничивающиепрямоугольник для запроса.В этом Вопросе рассказывается, как рассчитать ограничивающий прямоугольник, охватывающий заданный радиус вокруг текущей точки (это будет прямоугольник, поэтому он будет больше, чем круг ....

Как рассчитатьограничивающий прямоугольник для заданного местоположения широты / долготы?

Используя ограничивающий прямоугольник, теперь вы можете сделать запрос из своего db where lat < maxlat and lat > minlat and lon > minlon and lon < maxlon, который даст вам все ваши достопримечательности в этом блоке.

Затем, используя класс Location в API Android, вы можете получить его, чтобы рассчитать азимут и расстояние до каждого из попаданий, а затем, например, можете отсортировать по радиусу от вашей позиции.

2 голосов
/ 13 апреля 2010

Самый быстрый способ сделать это:

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("geo:0,0?q=business+near+city");
startActivity(intent);

После гео вы вводите свои координаты, а после q = вы вводите свои поисковые слова, как туризм + город. Это запустит приложение Google Maps с точками интереса.

Если вы хотите использовать вид карт внутри своего приложения, вам необходимо получить данные из какого-либо сервиса, например, из вашего собственного. Однако вы можете получить данные из поиска Google ajax, как это: http://ajax.googleapis.com/ajax/services/search/local?v=1.0&rsz=large&gl=pl&q=tourism+chicago Больше информации здесь: http://code.google.com/apis/ajaxsearch/documentation/reference.html#_fonje_local Это даст вам результаты, которые имеют гео-координаты, и вам нужно будет сделать способ анализа результатов и, возможно, поместить их в базу данных.

1 голос
/ 19 июня 2012

Foursquare имеет отличный API, который дает вам предприятия и другие интересные места, учитывая GPS-координаты. Не требует входа пользователя для доступа. База данных поддержки постоянно поддерживается пользователями foursquare.

https://developer.foursquare.com/overview/venues

1 голос
/ 09 ноября 2010

Один удобный для данных источник данных, который вы можете использовать, - http://compass.webservius.com - это база данных миллионов бизнес-списков в США, которую легко найти с помощью ограничивающей рамки координат с помощью REST API.

1 голос
/ 12 мая 2010

Еще один веб-сервис, на который вы можете посмотреть: http://developer.yahoo.com/geo/geoplanet/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...