генерировать случайные места рядом с моим местоположением

1

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

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

Я могу вычислить расстояние между двумя уже существующими местоположениями и узнать, находится ли внутри моего диапазона:

public List<Location> filter(Location current, List<Location> locations, int radius) {
    List<Location> results = new ArrayList<Location>();
    for (Location loc : locations) {
        if (current.distanceTo(loc) <= radius) {
            results.add(loc);
        }
    }
    return results;
}

Но действительно, я не могу найти, как создавать местоположения внутри моего диапазона.

Любая помощь здесь? Большое вам спасибо.

  • 0
    Спасибо keyser5053. Это проблема, я не знаю, как генерировать координаты самостоятельно, потому что я не знаю диапазон координат для использования.
  • 0
    Вы, кажется, знаете радиус. это все что тебе нужно
Показать ещё 1 комментарий
Теги:
geolocation
range

2 ответа

1
Лучший ответ

Как насчет случайного создания координат самостоятельно? Используя текущее местоположение, вы можете установить ограничения на эти числа. Используя текущие координаты и радиус, вы получаете диапазон для случайных чисел. Span for random new X = Старый X + - радиус

Я бы предложил создать случайное число между -1 и 1, а затем умножить его на радиус. Это означает, что максимальное значение для сгенерированной координаты - это радиус (и min is -radius). Добавление этого значения в текущую координату местоположения дает вам значение между старым X + - радиусом. Краткое описание:

(случайное число от -1 до 1) * радиус + (старый x) = новый x в радиусе старого x.

Пример кода для случайного числа (OBS! от 0 до 1):

import java.util.Random;

Random r = new Random();
double zeroToOne = r.nextInt(1001) / 1000

Здесь java-документация по случайному: Random

  • 0
    Я думаю, что теперь я понял, большое спасибо, собираюсь попробовать.
  • 0
    @pindleskin отредактировал формулу, чтобы она не просто давала вам новые координаты больше, чем старые (диапазон от -1)
-1

Кажется, это хорошо. если вы хотите взглянуть: http://android-er.blogspot.com/2011/02/get-list-of-address-from-location-using.html

Я думаю, обычно он работал, но я не мог его настроить на устройстве

Ещё вопросы

Сообщество Overcoder
Наверх
Меню