轻松入门 GeoJSON:不多说了,上手吧!
大家好!今天来聊聊 GeoJSON。如果你在搞地图啊、地理数据啊,这玩意儿肯定绕不过去。没事儿,不难,我慢慢给你说。
啥是 GeoJSON?
简单来说,GeoJSON 就是个文件格式,专门用来存地理数据。啥是地理数据?比如你在地图上看到的那些点、线、面,都可以用 GeoJSON 来表示。
一个简单的例子
咱先从一个最简单的 GeoJSON 说起:
{
"type": "Point",
"coordinates": [121.47, 31.23]
}
看到没?这里定义了一个“点”。"type": "Point"
说明这是个点,后面的"coordinates"
是一个数组,里面是经纬度。注意啊,经度在前,纬度在后。
搞个更复杂点的?
再来个存线的 GeoJSON:
{
"type":"LineString",
"coordinates":[
[121.47,31.23],
[121.48,31.24],
[121.49,31.25]
]
}
看到了吧?现在"type"
变成了"LineString"
,就是一条线。坐标点也多了几个,这样就连成了线。
还有多边形呢?
多边形也很简单:
{
"type":"Polygon",
"coordinates":[
[
[121.47,31.23],
[121.48,31.23],
[121.48,31.24],
[121.47,31.24],
[121.47,31.23]
]
]
}
这里的"type"
是"Polygon"
,也就是多边形。坐标点的顺序围成了一个封闭的形状。最后那个点要和第一个点重合,这样才能形成一个封闭的多边形。
有用的小贴士
有时候你可能需要在一个 GeoJSON 文件里存多个对象,比如一堆点、线、面。GeoJSON 当然支持,用"FeatureCollection"
就可以搞定:
{
"type":"FeatureCollection",
"features":[
{
"type":"Feature",
"geometry":{
"type":"Point",
"coordinates":[121.47,31.23]
},
"properties":{
"name":"点A"
}
},
{
"type":"Feature",
"geometry":{
"type":"Point",
"coordinates":[121.48,31.24]
},
"properties":{
"name":"点B"
}
}
]
}
这里用了个"FeatureCollection"
包了一堆点。每个“Feature”里不仅有“geometry”(也就是地理位置),还可以加点别的属性,比如"properties"
。在上面的例子里,我给每个点加了个"name"
属性。
最后小总结
GeoJSON 就是个简简单单的工具,不要把它想得太复杂。能表示点、线、面,还能存一堆数据在文件里一块儿管理。有了它,地图和位置数据处理起来顺手多了。差不多就这样吧,搞懂这些基本东西,再看 GeoJSON 文档啥的应该就没那么头大了。
好了,今天就说到这儿,有什么问题再说。希望这篇小文儿能帮你上个手,没那么难吧?