¿Cuál es un buen programa para seleccionar / restar un conjunto de ciudades de un radio de área?

Si entiendo su pregunta y sus comentarios son correctos, tiene una lista de ciudades (nombres) y desea eliminar las que están en un radio de 50 millas de su hogar.

¡Escribamos algo de pitón!

Primero instale geopy escribiendo

pip install geopy

en la terminal

El codigo es:

de geopy.geocoders importan Nominatim
de geopy.distance import vincenty

home = ‘Leuven’ # Su domicilio
# lista de ciudades
ciudades = ” ‘Roeselare
Kortrijk
Namur
Charleroi
Bruselas ” ‘

radius_to_remove = 50 # en millas

geolocalizador = Nominatim ()

home_position = geolocator.geocode (inicio)
home_location = (home_position.latitude, home_position.longitude)

ciudades = ciudades.split (‘\ n’)
filtrado = []

para ciudad en ciudades:
city_position = geolocator.geocode (ciudad)
city_location = (city_position.latitude, city_position.longitude)

distancia = vincenty (home_location, city_location) .miles
if (distancia> radius_to_remove):
filter.append (ciudad)
imprimir ‘AGREGADO’,

print city, city_location, ‘distance (miles) =’, distancia

imprimir ‘—FILTERADO—-‘
print ‘\ n’.join (filtrado)

Para ejecutar el código, escriba

python filename.py

en la terminal

Con estas ciudades (que están en Bélgica), obtendría una salida como esta:

AÑADIDO Roeselare (50.94630475, 3.13129870686686) distancia (millas) = ​​68.4442108791
AÑADIDO Kortrijk (50.81788085, 3.27841539037433) distancia (millas) = ​​62.1071168809
Namur (50.4665284, 4.8661892) distancia (millas) 29.6430159789
Charleroi (50.4583717, 4.42992577349544) distancia (millas) = ​​31.4486039098
Bruselas (50.84404145, 4.36720169448285) distancia (millas) = ​​14.5335288976

-FILTRADO–

Roeselare
Kortrijk

Las ciudades ‘filtradas’ son las ciudades que están más allá de 50 millas.

Cambie el home y las cities a su domicilio y las ciudades para obtener su respuesta.

Espero que esto responda tu pregunta. Si tiene problemas, pregúnteles en los comentarios o envíeme un mensaje.