Проблемы с геозоной в Android

Я работаю с Geo-fencing в Android. Я могу нарисовать многоугольник на карте и получить значения широты и долготы вершин. У меня вопрос: как определить, когда пользователь входит в многоугольник? Есть ли способ определить, находится ли пользователь внутри многоугольника или за его пределами?


person Jithu P.S    schedule 28.06.2013    source источник


Ответы (2)


Вы можете использовать API геозон Google Play Services, запущенный в IO 2013, чтобы сделать это довольно легко.

Полное руководство можно найти в создании и мониторинге геозон в документации для разработчиков. В частности, раздел обрабатывает переходы геозон.

person Anup Cowkur    schedule 28.06.2013
comment
но как я могу использовать это для многоугольников? - person Jithu P.S; 28.06.2013
comment
Geofence API пока использует только круговые области. Это может измениться позже. Если вы хотите использовать многоугольники, вам придется реализовать свои собственные алгоритмы. Это будет подвержено ошибкам, и это будет сложно сделать. Я рекомендую использовать круговые геозоны и API, если у вас нет веской причины не делать этого. Вот ветка, в которой обсуждается геозоны с использованием многоугольников: stackoverflow.com/q/924171/1369222 - person Anup Cowkur; 28.06.2013

Немного запоздалый ответ, но вы можете использовать android-maps-utils, у которого есть PolyUtil класс, содержащий следующий метод:

// Computes whether the given point lies inside the specified polygon.
static boolean containsLocation(LatLng point, List<LatLng> polygon, boolean geodesic)
person Sam R.    schedule 09.09.2014