Генерация географических координат из подающего угла - PullRequest
0 голосов
/ 21 марта 2020

Исходя из заданного угла на карте (позиция A), я хочу сгенерировать больше координат в направлении позиции B, добавив несколько небольших значений (расстояний) в заданной широте и долготе. Например:

  • На карте есть 6 домов от позиции A до B. Если я знаю широту, долготу 1 дома ( 143.5689855, -38.328956999999996), как я могу создать координаты для оставшихся 5?
  • Я попытался добиться этого, добавив несколько небольших чисел в координаты заданный угол, как показано в сценарии ниже. Но код только вывод на 1 дом. Как я могу создать al oop в своем коде, который будет автоматически добавлять заданное небольшое число и отображать новые координаты для остальных домов или даже для большей площади?

enter image description here

Что я пробовал:

from arcgis.gis import GIS
from arcgis.geocoding import geocode
from arcgis.geocoding import reverse_geocode
import pprint

# Create an anonymous connection to ArcGIS Online
gis = GIS()


#45-Stodart-St (given corner)
geocode_home = geocode(address="45 Stodart St, Colac VIC 3250")
location = [geocode_home[0]["location"]['x'], geocode_home[0]["location"]['y']]
pprint.pprint(location)


#Add some small numbers in origanal location. This will give us coordinates of next house i.e 43-Stodart-St

#43-Stodart-St

new_loc = [location[0]+0.0002215*1,location[1]*0.999999]

pprint.pprint(new_loc)

Выход:

enter image description here

1 Ответ

1 голос
/ 23 марта 2020

Предполагая, что у вас есть 2 местоположения дома A и дома B как loc_A и loc_B. Предполагая, что вы знаете номера домов A и B. -> Вы знаете количество домов.

Следующий код перебирает номера домов и создает список местоположений:

longitude_diff = loc_B[0] - loc_A[0]
latitude_diff = loc_B[1] - loc_A[1]
house_locations = []

for i in range(1, house_number_B - house_number_A):
    house_locations.append([loc_B[0] + i * longitude_diff/(house_number_B - house_number_A),
           loc_B[1] + i * latitude_diff/(house_number_B - house_number_A)])
...