如何比较不同格式的地理位置?

How to compare geolocations with different formats?

我正在使用阿姆斯特丹的 JSON 文件来获取不同区域的坐标,我想将这些坐标与我使用纬度和经度列生成的数据框进行比较。但是格式非常不同,我不确定如何继续。这是 JSON 坐标的格式:

'area' : 'Noord'
'coordinates' :[[[4.971481, 52.325345],
      [4.971263, 52.32558],
      [4.971131, 52.325707],
      [4.970473, 52.326281],
      [4.970254, 52.326163],
      [4.969608, 52.326511],
      [4.96921, 52.326776],
      [4.967541, 52.327751]

这是我的数据框的格式:

house_id      latitude      longitude
1             52.327751     4.967541

我的预期输出是:

house_id      latitude      longitude       area
1             52.327751     4.967541       Noord

基本上,我想将我的 df 的纬度和经度列与 JSON 坐标的值进行比较,如果它们包含在 JSON 坐标中,则将区域名称写入我的df 在列 "area" 中。有办法吗?

假设你的 json 在一个字典中,你可以做一个快速的功能:

def check(x):
    lat,lon = x['latitude'],x['longtiude']
    result = [True for coord in j['coordinates'][0] if [lon,lat] == coord]
    if result:
        return j['area']
    else:
        return None

df['area'] = df.apply(check,axis=1)

输出:

   house_id   latitude  longtiude   area
0         1  52.327751   4.967541  Noord