本文首發:http://www.meibug.net/web/142.html
GeoJSON
最近使用EChats開發地圖,其中地圖數據使用的規范為GeoJSON,從名字來看出來和JSON差不多,它確實是JSON Object
簡介
GeoJSON官網:https://www.geojson.org
GeoJSON准確的說是一種數據格式,它遵循的最新規范是RFC 7946,格式如下:
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [125.6, 10.1]
},
"properties": {
"name": "Dinagat Islands"
}
}
可以看出,格式中三個重要的對象:type
,geometry
,properties
這三個對象是geoJSON的基礎
GeoJSON中一共有7種幾何類型
- Point
- MultiPoint
- LineString
- MultiLineString
- Polygon
- MultiPolygon
- GeometryCollection
GeoJSON中一共有9種類型(指的是數據類型),除了以上7種外,還有以下幾種
- Feature
- FeatureCollection
GeoJSON中的所有集合類型是有序的JSON數組
GeoJSON對象:
- 必須是一個JSON Object
- 必須包含屬性
type
,成員的值必須是以上9種數據類型之一 - GeoJSON可以有一個
bbox
成員,但是bbox
的值必須是一個邊界數組
.. 留一個坑,以后再填
在EChats中地圖使用GeoJSON
我在使用從第三方下載的GeoJSON數據中遇到一個問題,顯示在地圖上的標簽位置無法調整,導致文字重疊在了一起
我嘗試調整了properties
中的center
屬性,結果不行,由於沒有文檔,所以我只能嘗試調整properties
中的cp
屬性試試,畢竟我也不知道這是干什么的,結果還真的成功了,cp
是一個數組,由兩個值組成,第一個值代表主軸,第二個值代表交叉軸,調整之后就OK了
這里給一個具體的GeoJSON文件參考:https://gitee.com/rick233/echarts-demo/raw/master/data/geojson-hn-xy.js,此數據可以畫出信陽市8縣2區的地圖