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

Posted

技术标签:

【中文标题】如何比较不同格式的地理位置?【英文标题】:How to compare geolocations with different formats? 【发布时间】:2019-12-03 02:44:35 【问题描述】:

我正在使用阿姆斯特丹的 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。有没有办法做到这一点?

【问题讨论】:

【参考方案1】:

假设你的 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

【讨论】:

以上是关于如何比较不同格式的地理位置?的主要内容,如果未能解决你的问题,请参考以下文章

如何比较两个不同断点之间的实例状态

比较具有相同项目但在随机位置的数组时如何返回true?

如何检查用户是否已登录不同的IP /位置

条件格式三种不同的条件

java 如何让 不同位置但内容一样的数据 相等

微信小程序开发过程中获取位置信息