import numpy as np import geopandas as gpd import geopandas.io.osm as osm df = gpd.read_file('RK_gpx_2014-07-10_2054.gpx', layer='tracks') df df_lights = osm.query_osm('node', bbox=df.total_bounds, tags='highway=traffic_signals') df_lights epsg = 26986 # MA mainland state plane df_p = df.to_crs(epsg=epsg) df_lights_p = df_lights.to_crs(epsg=epsg) df_lights['d'] = df_lights_p.distance(df_p['geometry'].iloc[0]) df_lights['d'] # Shouldn't need the 'set_geometry()' call below, this is a problem in GeoPandas combined = df.append(df_lights).set_geometry('geometry') combined['marker-color'] = np.where(combined['d'] <= 20, '#4daf4a', '#e41a1c') import geojsonio geojsonio.embed(combined.to_json(na='drop'))