2015-04-03 2 views
1

Python - Bounding Box/круг и проблемы с строкой У меня есть несколько проблем, которые я пытаюсь решить в отношении некоторых скриптов Python V2.7.x. Я запускаю под некоторыми подразделениями на базе Debian. ..Python - Bounding Box/Circle Library

1) ГИС - габаритный Box и Круги

Я пытаюсь найти библиотеку, которая может сделать это

Учитывая широту/долготу пара, точка а определить, если точка а находится в пределах ограничительной рамки от точки lat/long Уставка 1, точка 2, точка 3, точка 4.

Учитывая длину лат/длинную точку A, длину лат/длинную точку B и радиус от точки b в милях, определите, находится ли точка A в ограничительном круге точки B

Есть ли какая-нибудь библиотека, которая это делает?

GeoPy lib Я должен сделать геокодирование, не предлагая эти варианты. Некоторые из других библиотек, похоже, связаны с файлами формы ArcGIS и т. Д., Которые я не использую, и у них нет никакой будущей необходимости для них. Конечно, есть что-то, что имеет некоторые из них без кухонной раковины, как Что ж.

Я видел несколько вещей, которые берут точку A и дают рамку ... как: https://github.com/jfein/PyGeoTools/blob/master/geolocation.py

Не то, что я после того, как ... Я хочу передать точку а, с коробкой шнуров (P1-4), и он говорит мне, находится ли точка A в этом поле.

То же самое для круга. Точка A, точка B и радиус в MILES из точки B, и функция возвращает, если точка A является WITHIN, что ограничивает cirlce.

Все, что может сделать это ???

+0

Добро пожаловать в StackOverflow. Это отличное место для некоторых типов вопросов, но не для этого типа. См. [Помощь/по теме] – GreenAsJade

ответ

0

Возможно, вам лучше задать свой вопрос по телефону http://gis.stackexchange.com. В любом случае: проверка того, находится ли точка в ограничивающей рамке, является простой: просто убедитесь, что обе координаты попадают в диапазон ограничивающей рамки. Не нужно использовать библиотеку здесь. (проверьте, lat_min < lat_oint <lat_max и lat_min<lat_point <lat_max).

Для проверки радиуса вы можете использовать функцию vincenty геофизики: просто вычислите расстояние между милями между обеими точками и проверьте, меньше ли расстояние вашего радиуса.

>>> from geopy.distance import vincenty 
>>> newport_ri = (41.49008, -71.312796) 
>>> cleveland_oh = (41.499498, -81.695391) 
>>> print(vincenty(newport_ri, cleveland_oh).miles) 
538.3904451566326