最近也是在使用ThingJS制作智慧城市可視化應用,發現ThingJS的CityBuilder使用起來還是特別方便的,但是直接將GeoJSON.io上的數據上傳至CItyBuilder時又不是很理想,有時候一不注意,建築就有一定的偏移,就只能重新把數據放回GeoJSON.io網站上,進行拖拽編輯,這個方法其實也不算復雜,但是隨着我繪制的建築面越來越多、屬性值也越來越多的情況下,我發現我快瘋了!!!

某些智慧城市應用將會有許多的城市基礎建築需要繪制,一個兩個還好,但是大區域的話,幾百個樓都屬於平常情況,有的甚至會有幾千個樓,然后實際上只需要展示幾棟或者十幾棟的主要建築,這是啥比例?一比一百呀我的天,難道我要每個模型都寫屬性么?有些不太重要,但是屬性相同並且在一塊區域的,我是不是可以合並?這樣我畫同一個區域的建築的時候,就只用畫一下,不需要填寫對應的屬性了,想一想就發現,能這樣豈不是大大減少了開發智慧城市可視化應用的時間?當然,這種方法只對於建築面多的智慧城市應用有效,建築面少的,額,少的就在一邊偷笑去吧...
實際上這個軟件早就出現了,並且都已經更新到了3.8版本了,但是本人愚鈍,QGIS3.8版本用了兩天還是覺得不甚習慣,於是又重投2.18老版本的懷抱.
那么,我就來分享一下我使用QGIS修改GeoJSON數據的心得,以及一些編輯CityBuilder的小技巧吧。
不知道大家是否有過面板關了找半天,找不到在哪開啟的苦惱?可能大多數人都沒遇到過,可能大部分人知道怎么打開被關閉的面板,但是對於新手來說,面板被關了,還真就找不到!!!被關閉的面板怎么重新打開?其實很簡單的,面板是panel,你在view視圖中找找panel面板,就能找到被關閉的面板了,比如Layers
Panel,鼠標點擊view,下滑至Panels,看到Layers
Panel,鼠標點擊選擇框,即可選擇該面板,其他的面板也是在Panels中,只要點擊選擇框選擇該面板,即可出現對應面板了。2.18版本和3.8版本都是這樣顯示/隱藏面板的喲。

現在讓我們了解一下QGIS是如何編輯GeoJSON文件的,而且,相比於GeoJSON.io 這個在線工具,QGIS到底哪些位置更方便一些呢?
QGIS擁有在線編輯上的所有功能,如修改屬性、移動、修改建築面、刪除、新增等等,並且使用起來比GeoJSON在線工具要更好用一些。2.18版本的QGIS中的“開始編輯”“保存編輯”、“添加建築面”、“繪制弧形建築”、“移動建築面”、“編輯建築面”按鈕的位置處於第二排圖標中的前幾個,如下圖所示:

QGIS也能操作屬性,增加或者是刪除字段都可以,當要刪除某一條屬性值的時候,被選擇的建築面會黃色高亮提示;


其中還有一個,是導入在線地圖,通過導入在線地圖,可以查看我們的建築面繪制是否有偏移,此處推薦選擇的是OpenStreetMap在線地圖,導入方法如下:
右鍵QGIS中的Browser Panel面板中的Tile Server(XYZ),點擊new Connection,在出現的面板中輸入OpenStreetMap的地圖數據鏈接:https://a.tile.openstreetmap.org/{z}/{x}/{y}.png

除了導入OpenStreetMap在線地圖,同樣可以導入其他在線地圖,這些地圖的鏈接不是直接拿來使用的,需要進行一個選擇,選擇第一個大括號中的數字,如Google中的“影像”這一條鏈接:https://mt{0,1,2,3}.google.cn/vt/lyrs=s&hl=zh-CN&gl=cn&x={x}&y={y}&z={z} ,我們在實際使用中則是會在mt 后面的大括號中選擇0,1,2,3中的任意一個數字替換掉這整個大括號,比如我選擇數字1,那么我們在使用QGIS導入的時候,輸入的數據鏈接就是這樣子的:https://mt1.google.cn/vt/lyrs=s&hl=zh-CN&gl=cn&x={x}&y={y}&z={z} ;

'Google':{
'影像':'https://mt{0,1,2,3}.google.cn/vt/lyrs=s&hl=zh-CN&gl=cn&x={x}&y={y}&z={z}',
'街道':'https://mt{0,1,2,3}.google.cn/vt/lyrs=m&hl=zh-CN&gl=cn&x={x}&y={y}&z={z}',
'影像帶標注':'https://mt{0,1,2,3}.google.cn/vt/lyrs=y&hl=zh-CN&gl=cn&x={x}&y={y}&z={z}',
'地形帶標注':'https://mt{0,1,2,3}.google.cn/vt/lyrs=p&hl=zh-CN&gl=cn&x={x}&y={y}&z={z}'
},
'高德':{
'影像':'https://webst0{1,2,3,4}.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}',
'街道':'https://webst0{1,2,3,4}.is.autonavi.com/appmaptile?style=7&x={x}&y={y}&z={z}',
},
'GeoQ':{
'基礎':'https://map.geoq.cn/arcgis/rest/services/ChinaOnlineCommunity/MapServer/tile/{z}/{y}/{x}',
'魅藍':'https://map.geoq.cn/arcgis/rest/services/ChinaOnlineStreetPurplishBlue/MapServer/tile/{z}/{y}/{x}',
'暖色':'https://map.geoq.cn/arcgis/rest/services/ChinaOnlineStreetWarm/MapServer/tile/{z}/{y}/{x}',
'灰色':'https://map.geoq.cn/arcgis/rest/services/ChinaOnlineStreetGray/MapServer/tile/{z}/{y}/{x}'
},
'OSM':{
'街道':'https://{a,b,c}.tile.openstreetmap.org/{z}/{x}/{y}.png'
},
引用作者:ThingJS