我在json文件中有几个字段,我需要确定哪个json字段是GeoJSON。例如,这是我拥有的数据的示例:
{
"name": "bob",
"age": 20,
"info": {"height": 189, "weight": 101}
"location": { "type": "Feature","geometry": {"type": "Point","coordinates": [125.6, 10.1]},"properties": {"name": "Dinagat Islands"}}
}
我想从中获取以下列信息:
确定json对象是否实际上是GeoJSON对象的最佳方法是什么?我查看了GeoJSON的各种示例,例如http://geojsonlint.com/,并且在如何指定方面似乎很灵活。
是否可以肯定地知道JSON对象是否为GeoJSON?
答案 0 :(得分:0)
您可以使用pandas将json / geojson对象转换为数据框。链接here。
使用以下方法获取位置点:
安装geopy。
pip install geopy
要获取位置:
location = df['location']['geometry']['coordinates']
然后
try:
from geopy.geocoders import Nominatim
geolocator = Nominatim(user_agent="specify_your_app_name_here")
location = geolocator.reverse(str(location))
print(location.address)
except:
print('not GEOjson') #there will be exception if the coordinates don't represent a location
这是基于coordinates
是pair
并会给出位置地址的事实。
其他:
您只需检查它们是否具有coordinates
或geometry
之类的功能,然后检查其geojson
。
由于整个对象都在一个数据框中,因此可以更轻松地可视化和使用任意值!
您也可以通过相同的方式获取name
,location
或其他任何内容。