我有一些包含lat-lng坐标的原点数据,并且当我使用osmnx的get_nearest_edges方法时,我想过滤不在给定城市(本例中为旧金山)中的那些坐标。有实现此功能的便捷方法吗?
这是我的代码的一部分:
roadId = ox.utils.get_nearest_edges(G, df['longitude'], df['latitude'], method='balltree')
df['startId'] = roadId[:,0]
df['endId'] = roadId[:,1]
startId = roadId[:,0]
endId = roadId[:,1]
gdf_nodes, gdf_edges = ox.graph_to_gdfs(G)
startInfo = gdf_nodes.loc[startId]
endInfo = gdf_nodes.loc[endId]
df['startLat'] = startInfo.loc[:, ['y']].values
df['startLon'] = startInfo.loc[:, ['x']].values
df['endLat'] = endInfo.loc[:, ['y']].values
df['endLon'] = endInfo.loc[:, ['x']].values
第一行的G来自此:
G = ox.graph_from_place('San Francisco, California, USA', network_type='drive')
输出文件如下:
latitude 37.61549
longitude -122.38821
startId 65365765
endId 65365766
startLat 37.708957
startLon -122.392803
endLat 37.708785
endLon -122.393012
这个例子就是我要表达的,因为结果中的路不在旧金山,我如何在代码中识别并删除它?
答案 0 :(得分:0)
您问了两个问题。首先,如何确定一对经纬度坐标是否在城市边界内?第二,如何获得城市的边界框?这是使用OSMnx的方法(以及OSMnx内置的形状):
//video
self.session = AVCaptureSession()
guard
let videoDeviceInput = try? AVCaptureDeviceInput(device: device!),
self.session!.canAddInput(videoDeviceInput)
else { return }
self.session!.addInput(videoDeviceInput)
//audio
guard
let audioDeviceInput = try? AVCaptureDeviceInput(device: mic!),
self.session!.canAddInput(audioDeviceInput)
else { return }
self.session!.addInput(audioDeviceInput)