Как разрешить пользователям Android искать ближайшие точки интереса, созданные мной на Картах Google? - PullRequest
1 голос
/ 27 ноября 2011

Я хочу отметить исторические «достопримечательности» по всему миру с помощью картографического решения, такого как Google Maps (или что-то еще).

Я получу приложение для Android, в котором я хочубыть в состоянии предоставить пользователям возможность поиска и поиска ближайших таких «точек интереса» вокруг их текущего местоположения.

  1. Должен ли я использовать Google Maps или что-то еще, например OSM?

  2. Как мне пометить их в Google или в другом месте?

    (а) Я хочу иметь возможность пометить эти места и фотографиями, и

    (б) Я хочу сохранить их на своем конце также в общем формате, на всякий случай!

  3. Как приложение Android должно искать самые близкие такие точки?

  4. Как я понимаю, Карты Google могут показывать свою собственную карту с наложениеммои данные, когда я предоставляю файл KML (http://code.google.com/apis/kml/documentation/kmlSearch.html). Может ли это отображаться «в приложении Android»? (т.е. я знаю, что оно может отображаться на веб-странице, но может ли оно отображаться в собственном приложении?)

Ответы [ 3 ]

2 голосов
/ 08 декабря 2011
  1. Я предложу карты Google. Причина в том, что Google Maps обновляется часто и частично карт из osm не так последний.

  2. Вероятно, сохраните эту маркировку в вашем собственном хранилище данных с именем point_of_interest. Информационное окно также является специальным видом наложения для отображения контента. (обычно текст или изображения) внутри всплывающего окна в верхней части карты в данный момент место нахождения. прочитайте здесь для получения дополнительной информации.

  3. ваше приложение для Android должно определять текущее местоположение пользователя и отправлять информацию такие как широта и долгота вашего сервера. Отсюда и запрос для поиска для интереса делается сервером и обрабатывает данные и отправляет Вернуться к пользовательскому приложению для Android. Например, запрос будет что-то вроде выберите * из пункта point_of_интерес, где расстояние <предел 10 км 5; </p>

  4. да, прочитайте это ссылка

0 голосов
/ 09 декабря 2011
  1. Я предпочитаю карты Google.Google maps SDK выглядит хорошо, а SDK работает хорошо.Я не знаю SDK, который имеет что-то вроде OSMMapView, который предлагает ту же производительность и функции, что и карты Google (пожалуйста, исправьте меня).Но OSM может быть визуально привлекательным, как Google Maps. Cloudmade имеет множество различных стилей для данных OSM.

  2. Если вы хотите отображать карты через Google, вы должны использовать Библиотека карт поставляется с Android SDK.

    1. Вы можете отображать любые виды в верхней части карт Google.То есть используйте mapviewballoons на github.

    2. Если у вас есть много POI, которые вы хотите отобразить, вы обязательно должны сохранить ваши данные с пространственным индексом.Так что поиск ближайшего соседа происходит быстро.Одним из решений будет использование sqlite R * Trees .Я не использовал их на Android, и они работают не из коробки, вы должны собрать sqlite-android самостоятельно (см. этот вопрос ).Или используйте Perst , или ...

      Если у вас мало данных, которые помещаются в память телефона, вы можете использовать Quadtree .Это будет даже быстрее, чем БД при поиске.Вы найдете много примеров, когда вы Google.Вы можете хранить данные в формате xml, json или даже сериализовать все квадродерево с помощью интерфейса java Serializable.

  3. Существует множество возможностей, которые этот вопрос слишком широк.Некоторые случайные идеи:

    1. Создайте сервер, который реагирует на ограничивающий поиск по HTTP и сохраните POI в Quadtree.

    2. Доставьте все своиPOI с приложением.В качестве базы данных: xml, json или сериализованное Quadtree.

  4. У меня нет опыта работы с kml на Android.

0 голосов
/ 03 декабря 2011

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

Я бы просто получил приложение для Androidиспользуйте MapView, а затем пользовательские оверлеи для отображения значков на карте.Проблема с отображением элементов, использующих kml, заключается в том, что они не будут нажиматься пользователем, поэтому они не будут интерактивными.Если вы решите сделать это с помощью kml, в этом проекте есть пример кода: https://github.com/sunlightlabs/congress

...