“Поиск на расстоянии” API для [закрытого] OpenStreetMap

В Java, особенно с наборами, используют API, поэтому если Ваш метод возвращает список типов (например), попробуйте следующее:

public List<T> getList() {
    return Collections.unmodifiableList(list);
}

не позволяют ничему выходить из Вашего класса, что Вы не должны!

5
задан Robert Mircea 5 September 2009 в 22:24
поделиться

2 ответа

Насколько мне известно, API не поддерживает это напрямую. Самый простой подход - выбрать (квази) прямоугольную ограничивающую рамку , в которую вписывается ваш круг, и использовать его для извлечения ваших POI. Затем вы можете рассчитать расстояние до каждой точки интереса и отбросить те, которые превышают ваш радиус. Это удалит небольшую часть POI, которые лежат близко к углам поля и поэтому не находятся в пределах вашего круга. Вы хотите сделать это в таком порядке, чтобы вам нужно было вычислить расстояние только для относительно небольшого количества целевых местоположений.

Не забывайте, что ограничивающая рамка определяется углами широты / долготы, поэтому она не т действительно прямоугольный. Линии долготы сходятся на полюсах, поэтому верхняя часть вашего поля не такой же ширины, как нижняя. Насколько это влияет на вас, зависит от того, насколько вы близки к полюсу (долгота ~ = (40000 км / 360) * cos (широта)).

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

Теорема s, помня косинусное изменение долготы и разность единиц множителя 2 (360 градусов долготы, но только 180 широты). Если вам действительно нужна точность, то вы попадаете в область сферической тригонометрии , а также должны учитывать эллипсоидальную Землю . Вот онлайн-калькулятор с уравнениями и открытым исходным кодом, который может оказаться полезным в этом отношении.

Теорема s, помня косинусное изменение долготы и разность единиц множителя 2 (360 градусов долготы, но только 180 широты). Если вам действительно нужна точность, то вы попадаете в область сферической тригонометрии , а также должны учитывать эллипсоидальную Землю . Вот онлайн-калькулятор с уравнениями и открытым исходным кодом, который может оказаться полезным в этом отношении.

8
ответ дан 13 December 2019 в 05:39
поделиться

Вот документация: http://developers.cloudmade.com/wiki/geocoding-http-api/Documentation

Вот пример того, что вам нужно - HTML , JSON . 1124243]

1
ответ дан 13 December 2019 в 05:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: