2011-01-15 3 views
2

Хорошо, вот моя проблема. Система, с которой я работаю, использует объекты под названием Areas для представления области 920x920 метров на карте. Однако единственной ссылкой для Района является широта и долгота для верхнего левого угла квадрата сетки.Определение местоположения GPS (lat/long) в пределах фиксированной области ... [Android]

Что мне нужно сделать - это выяснить, попадает ли текущее местоположение GPS в пределах определенной области, поэтому я пишу функцию, которая проверяет, является ли это так, и если это так возвращает данные из этого объекта области.

Где я борюсь, на самом деле разрабатывает лучший способ проверки местоположения, когда все, что мне нужно, это точный lat/long пользователя и известный lat/long для верхнего левого угла квадрата сетки ... что было бы лучшим способом подойти к этой проблеме?

Большое спасибо за помощь.

+0

Кажется, что проблема связана с тем, как вы пытаетесь установить это. Если у вас есть только квадратные области для работы, я не думаю, что вы можете однозначно разбивать мир без каких-либо пересекающихся областей (подумайте о том, что происходит возле полюсов). – templatetypedef

+0

Возможный дубликат http://stackoverflow.com/questions/4287780/detecting-whether-a-gps-coordinate-falls-within-a-polygon-on-a-map –

+0

@templatetypedef - система охватывает только небольшой город , так что это не вызывает особой озабоченности - в любом случае, я ограничиваюсь этим способом делать вещи, поскольку я строю на (не очень хорошо документированной) существующей системе ... – Sam

ответ

3

Шаг № 1: Порт these calculations (или эквивалент) для Java и использовать их, чтобы определить, сколько градусов широты или долготы 920 метров дается ваши координаты

Шаг № 2: Используйте значения из Шаг # 1 для определения координат широты/долготы нижнего правого угла вашего квадрата

Шаг №3: Посмотрите, находится ли долгота пользователя между левым и правым значениями, и если широта пользователя находится между верхним и нижним значениями

Будьте осторожны, когда вы попадаете в ключевые точки перегиба (0 градусов latitud e, +/- 180 градусов широты и т. д.).

+0

Спасибо, я попробую! – Sam

+0

Да, этот подход отлично работает. Большое спасибо! – Sam