如何判断给定坐标是否在某个城市中?

时间:2019-05-10 06:47:17

标签: python osmnx

我有一些包含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

这个例子就是我要表达的,因为结果中的路不在旧金山,我如何在代码中识别并删除它?

1 个答案:

答案 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)