道路矢量數(shù)據(jù)Shapefile包:從加載到避坑實(shí)戰(zhàn))
簡(jiǎn)介北京城區(qū)道路矢量數(shù)據(jù)包提供主城區(qū)精細(xì)化道路網(wǎng)絡(luò)Shapefile數(shù)據(jù)適合GIS開(kāi)發(fā)、規(guī)劃與地圖制圖人員直接使用。數(shù)據(jù)覆蓋主干道、次干道、支路及部分街巷坐標(biāo)系為WGS84或CGCS2000以.prj為準(zhǔn)屬性含道路名稱、等級(jí)、方向、車道數(shù)等基礎(chǔ)信息可無(wú)縫導(dǎo)入ArcGIS、QGIS、SuperMap等平臺(tái)進(jìn)行疊加分析、拓?fù)渚庉嬇c可視化出圖。壓縮包共22個(gè)文件、約8.08MB包括.shp、.shx、.dbf、.prj、.cpg、.sbn、.sbx及.shp.xml等完整Shapefile組件并附有道路預(yù)覽圖、Python輔助腳本和說(shuō)明文件便于快速核驗(yàn)數(shù)據(jù)范圍與批量處理。目前已有66人學(xué)習(xí)下載適用于交通規(guī)劃、路徑分析、城市建模等場(chǎng)景免去從零采集、配準(zhǔn)與格式轉(zhuǎn)換的繁瑣流程拿到即可投入項(xiàng)目使用。 做城市交通分析、寫(xiě)前端可視化demo最常找的就是道路矢量數(shù)據(jù)尤其是拿一個(gè)現(xiàn)成的城區(qū)道路矢量包直接開(kāi)工比從OSM上下載、裁剪、校正、清洗要省太多時(shí)間。這次我整理的是北京城區(qū)道路矢量數(shù)據(jù)包包含Shapefile全套文件屬于那種典型的拿到就能用的GIS數(shù)據(jù)資源。你可能會(huì)覺(jué)得道路數(shù)據(jù)到處都是但真到項(xiàng)目里就會(huì)發(fā)現(xiàn)全國(guó)級(jí)別的路網(wǎng)太粗街道級(jí)別的手工矢量化又累到懷疑人生。這篇博文不賣關(guān)子直接講清楚這份數(shù)據(jù)包里裝了什么、用QGIS和ArcGIS怎么打開(kāi)、以及我在實(shí)戰(zhàn)中遇到過(guò)的三個(gè)最典型的坑希望幫你少走彎路。1. 找一份能用的城區(qū)道路數(shù)據(jù)為什么這么難1.1 我們真正需要的路網(wǎng)數(shù)據(jù)長(zhǎng)什么樣在做可達(dá)性分析、路網(wǎng)密度評(píng)估、地圖標(biāo)注項(xiàng)目時(shí)需要的道路數(shù)據(jù)至少要滿足三個(gè)條件范圍聚焦到城市內(nèi)部不用帶著全國(guó)幾十萬(wàn)公里的低分辨率線屬性里有道路等級(jí)、名稱這樣的基礎(chǔ)字段能分類渲染也為后續(xù)分析留個(gè)底坐標(biāo)系相對(duì)標(biāo)準(zhǔn)至少能被QGIS或ArcGIS正確識(shí)別跟在線底圖疊加時(shí)不至于偏到隔壁街區(qū)。這三條看似簡(jiǎn)單放到真實(shí)數(shù)據(jù)獲取場(chǎng)景里卻往往一條都不沾邊。1.2 現(xiàn)成數(shù)據(jù)的三大尷尬先說(shuō)全國(guó)級(jí)公開(kāi)道路數(shù)據(jù)的問(wèn)題。這類數(shù)據(jù)覆蓋廣但到城市里基本只剩下高速和幾條主干道城中村、支路、內(nèi)部路完全缺失。對(duì)于北京城區(qū)這種粒度打開(kāi)一看全是斷頭路和網(wǎng)格狀的粗線條做不了細(xì)致分析。第二個(gè)尷尬是坐標(biāo)系混用。同一張圖里有些數(shù)據(jù)是WGS84經(jīng)緯度有些是GCJ-02也就是俗稱的火星坐標(biāo)有些還是投影坐標(biāo)你把它疊加到在線底圖上肉眼看到的就是道路懸空、錯(cuò)位幾十米。這種情況排查起來(lái)非常費(fèi)時(shí)間因?yàn)閱?wèn)題往往不在數(shù)據(jù)本身而是缺少正確的.prj信息。第三個(gè)尷尬是屬性字段過(guò)于環(huán)保。數(shù)據(jù)里只有幾何線條沒(méi)有名稱、沒(méi)有等級(jí)想快速渲染一個(gè)快速路紅色、主干道橙色、支路灰色的圖例都沒(méi)辦法。CSV表里好歹還有ID你拿到的路網(wǎng)可能連ID都沒(méi)有。所以有人寧可自己從遙感影像上重新數(shù)字化一小塊區(qū)域也不想去清理一份大而全的爛數(shù)據(jù)。1.3 這份數(shù)據(jù)包能幫你省掉哪部分工作所以我平時(shí)找數(shù)據(jù)會(huì)優(yōu)先找像北京城區(qū)道路這樣的矢量數(shù)據(jù)包范圍已經(jīng)切到城區(qū)道路要素相對(duì)完整附帶Shapefile全套文件。拿到之后最該感謝的不是那根彎彎曲曲的線而是背后已經(jīng)做好的坐標(biāo)對(duì)齊和屬性分層這恰好是DIY數(shù)據(jù)時(shí)最耗時(shí)、最瑣碎的兩個(gè)環(huán)節(jié)。它不能替代你的業(yè)務(wù)分析但能讓你在十分鐘內(nèi)把精力從清數(shù)據(jù)切換到做分析省下的那幾天時(shí)間足夠你做完兩版方案了。2. 打開(kāi)壓縮包前先弄懂Shapefile文件組2.1 缺一不可的三個(gè)主文件很多第一次接觸的人會(huì)誤以為Shapefile就是一個(gè).shp文件其實(shí)它是一整套文件組。最低限度得有三個(gè)文件同時(shí)存在否則任何GIS軟件都無(wú)法正常打開(kāi).shp記錄要素的幾何形狀線、面、點(diǎn)的坐標(biāo)全在這里。.shx形狀索引記錄每個(gè)幾何對(duì)象在.shp里的位置相當(dāng)于書(shū)的目錄頁(yè)。.dbf要素屬性表一行對(duì)應(yīng)一條要素道路名稱、等級(jí)、長(zhǎng)度都放在這。這三個(gè)文件是三位一體的。有人圖省事只拷貝了其中的.shp給別人對(duì)方打開(kāi)就是無(wú)法讀取看似玄學(xué)其實(shí)就是缺了另外兩個(gè)。我建議分發(fā)數(shù)據(jù)時(shí)別只發(fā)一個(gè)壓縮包了事至少把.shp、.shx、.dbf三個(gè)主文件放在同一個(gè)文件夾再打包上傳。2.2 那些可選的輔助文件到底管什么除了三個(gè)主文件Shapefile還會(huì)有不少輔助文件大家看到一長(zhǎng)串同名文件不要慌.prj坐標(biāo)系定義。這是我最先檢查的文件它能告訴你數(shù)據(jù)用的是WGS84、CGCS2000還是別的坐標(biāo)系底圖偏移的坑有一半跟它有關(guān)。.cpg字符編碼聲明。dbf屬性表里的中文能否正確顯示就看它是否寫(xiě)了UTF-8或GBK。沒(méi)有這個(gè)文件亂碼概率直線上升。.sbn / .sbx空間索引一般由ArcGIS生成查詢速度快一些缺失不影響打開(kāi)。.shp.xml元數(shù)據(jù)文件記錄了數(shù)據(jù)來(lái)源、更新時(shí)間等信息QGIS和ArcGIS都能讀。.qix部分軟件用的四叉樹(shù)索引可忽略。我用一張表給你列出來(lái)哪些必須有、哪些可以不管文件后綴作用缺失后果.shp幾何坐標(biāo)無(wú)法打開(kāi).shx幾何索引無(wú)法打開(kāi)或讀取緩慢.dbf屬性數(shù)據(jù)無(wú)法打開(kāi)幾何和屬性斷鏈.prj坐標(biāo)系定義軟件按默認(rèn)坐標(biāo)系處理可能整體偏移.cpg字符編碼中文屬性可能亂碼.sbn / .sbx空間索引無(wú)影響.shp.xml元數(shù)據(jù)無(wú)影響如果你收到的壓縮包缺少.prj趕緊先手動(dòng)判斷坐標(biāo)系如果缺少.cpg中文屬性亂碼時(shí)優(yōu)先懷疑它。這兩點(diǎn)下面會(huì)展開(kāi)講。2.3 為什么一個(gè)道路要素被拆成那么多文件這點(diǎn)經(jīng)常被剛?cè)腴T的同學(xué)問(wèn)到。之所以不做一個(gè)單一文件是因?yàn)镾hapefile是在上世紀(jì)90年代形成的格式標(biāo)準(zhǔn)當(dāng)時(shí)為了兼容不同軟件把幾何、索引、屬性分開(kāi)存儲(chǔ)。好處是GIS軟件可以按需讀取要畫(huà)圖就只讀.shp要做屬性查詢就只讀.dbf。代價(jià)是文件一多就容易搞丟而且.dbf沿用了老式dBASE格式字段名最長(zhǎng)只有10個(gè)字符。所以你在屬性表里看到的classnamelength這種簡(jiǎn)潔字段名不是設(shè)計(jì)者懶是格式上限擺在那里。如果覺(jué)得文件組管理麻煩我個(gè)人會(huì)順手把數(shù)據(jù)轉(zhuǎn)成GeoPackage或GeoJSON再分發(fā)單文件一個(gè)搞定也算是對(duì)Shapefile老格式的一種現(xiàn)代化補(bǔ)充。但作為通用交付格式Shapefile仍然是大多數(shù)建模軟件和平臺(tái)默認(rèn)支持的老大哥所以收到一整套Shapefile時(shí)先檢查再使用就好。3. 數(shù)據(jù)包內(nèi)容解剖幾何、字段與坐標(biāo)系3.1 要素類型與道路分級(jí)邏輯這份北京城區(qū)道路數(shù)據(jù)核心要素是道路中心線也就是用一系列線段表達(dá)每條道路的空間走向。中心線本身沒(méi)有寬度但在路網(wǎng)分析里它是最方便的形式路徑規(guī)劃、拓?fù)浞治?、長(zhǎng)度統(tǒng)計(jì)全部基于它。道路等級(jí)是這類數(shù)據(jù)最關(guān)鍵的分層邏輯通常會(huì)區(qū)分快速路、主干道、次干道、支路有的還會(huì)區(qū)分內(nèi)部路、步行道等。道路分級(jí)為什么重要因?yàn)榧?jí)別本質(zhì)上是道路功能與通行能力的壓縮表達(dá)。在做路網(wǎng)密度分析時(shí)如果不區(qū)分等級(jí)直接把所有線加在一起支路和高速同為一條線結(jié)果毫無(wú)意義。在做路徑規(guī)劃時(shí)不同等級(jí)通常對(duì)應(yīng)著不同的通行速度權(quán)重快速路可以給較高的速度支路則要保守一些。拿到數(shù)據(jù)后先看一眼等級(jí)字段的取值分布能省掉后面大量清洗工作。3.2 屬性字段的設(shè)計(jì)思路打開(kāi)屬性表你會(huì)看到每個(gè)要素一行記錄典型字段包括name道路名稱比如長(zhǎng)安街北四環(huán)中路有些數(shù)據(jù)還會(huì)把別名一起維護(hù)。class / type / kind道路等級(jí)。不同來(lái)源常用的字段名不一樣看取值分布就能猜出大概。length幾何長(zhǎng)度。如果用的是經(jīng)緯度坐標(biāo)這個(gè)長(zhǎng)度單位是度要先投影到米制坐標(biāo)系再統(tǒng)計(jì)才靠譜。id每個(gè)要素的唯一編號(hào)做關(guān)聯(lián)和調(diào)試時(shí)很有用。有的版本還會(huì)帶oneway單行線、speed限速、bridge是否橋梁等字段。字段命名不一樣很正常這跟生產(chǎn)方使用的源數(shù)據(jù)有關(guān)。我建議拿到數(shù)據(jù)后先執(zhí)行一行print(gdf.head())或直接看屬性表把各字段的口徑摸一遍別急著分析否則字段定義搞錯(cuò)統(tǒng)計(jì)結(jié)果就全錯(cuò)了。舉例來(lái)說(shuō)有的數(shù)據(jù)用中文表頭道路等級(jí)而不是class雖然QGIS里看沒(méi)問(wèn)題但對(duì)后續(xù)Python腳本不友好處理時(shí)順手改一下就行。3.3 坐標(biāo)系和投影決定了它能不能跟底圖對(duì)齊坐標(biāo)系是這個(gè)數(shù)據(jù)包里面最需要較真的部分。常見(jiàn)情況有兩種一種是WGS84或CGCS2000地理坐標(biāo)系單位是度直接用QGIS打開(kāi)沒(méi)問(wèn)題跟在線瓦片底圖疊加時(shí)只要開(kāi)啟動(dòng)態(tài)重投影即可另一種是北京本地或全國(guó)范圍的投影坐標(biāo)系單位是米適合做面積、長(zhǎng)度計(jì)算但跟在線底圖疊加時(shí)要先統(tǒng)一到同一套坐標(biāo)系。這里有個(gè)比較隱秘的問(wèn)題如果你這份數(shù)據(jù)是通過(guò)互聯(lián)網(wǎng)地圖抓取或處理得到的坐標(biāo)可能是GCJ-02加密坐標(biāo)。它跟公開(kāi)GPS坐標(biāo)相差幾十到幾百米直接用會(huì)導(dǎo)致路網(wǎng)和建筑底圖錯(cuò)位。判斷方法很簡(jiǎn)單把數(shù)據(jù)疊加到WGS84底圖上如果整體偏移非常均勻且明顯而單獨(dú)看數(shù)據(jù)本身又是連續(xù)的那基本就是坐標(biāo)系不統(tǒng)一不是數(shù)據(jù)損壞。這種情況下需要用成熟的坐標(biāo)轉(zhuǎn)換庫(kù)做逐點(diǎn)糾偏再統(tǒng)一輸出新文件。4. QGIS和ArcGIS里的加載與可視化實(shí)操4.1 在QGIS里加載并做分級(jí)渲染QGIS加載Shapefile非常簡(jiǎn)單打開(kāi)軟件直接把.shp文件拖進(jìn)圖層窗口或者用圖層→添加圖層→添加矢量圖層選擇文件。加載完建議先雙擊圖層名打開(kāi)屬性窗口看源選項(xiàng)卡里顯示的坐標(biāo)系是否跟.prj一致再看一下要素?cái)?shù)量確認(rèn)不是空?qǐng)D層。默認(rèn)樣式只能顯示一層灰色線如果你希望按道路等級(jí)分類右鍵圖層→屬性→符號(hào)化選擇分類Categorized值選等級(jí)字段點(diǎn)擊分類按鈕QGIS會(huì)自動(dòng)給每個(gè)級(jí)別分配顏色。然后手動(dòng)調(diào)整色帶快速路用深紅、主干道用橙黃、支路用淺灰一張能放進(jìn)報(bào)告里的道路分級(jí)圖就出來(lái)了。4.2 在ArcGIS里定義投影和查詢統(tǒng)計(jì)ArcGIS用戶的操作略有不同。在目錄面板里連接文件所在文件夾把.shp拖入地圖窗口即可。如果圖層右鍵屬性里源選項(xiàng)卡的坐標(biāo)系顯示為未知或不正確可以在數(shù)據(jù)管理工具→投影和變換→定義投影里手動(dòng)指定正確的坐標(biāo)系并生成一個(gè)帶正確.prj的新文件。查詢統(tǒng)計(jì)方面ArcGIS Pro可以直接右鍵圖層→屬性表按等級(jí)字段做分組統(tǒng)計(jì)也可以打開(kāi)分析工具→統(tǒng)計(jì)工具→頻數(shù)生成每個(gè)等級(jí)的道路條數(shù)和長(zhǎng)度匯總。這個(gè)功能最適合快速摸清數(shù)據(jù)底子。4.3 一條命令統(tǒng)計(jì)各等級(jí)道路長(zhǎng)度如果你習(xí)慣用PythonGeoPandas是我最推薦的路網(wǎng)處理方式幾行代碼就能把數(shù)據(jù)情況摸清import geopandas as gpd gdf gpd.read_file(beijing_road.shp, encodingutf-8) print(gdf.head()) print(gdf[class].value_counts())要統(tǒng)計(jì)不同等級(jí)道路總長(zhǎng)度先判斷坐標(biāo)系。如果是經(jīng)緯度先投影到適合北京的米制坐標(biāo)系再計(jì)算。北京經(jīng)度大約在116度附近UTM 50N的覆蓋范圍是114度到120度正好合適gdf_metric gdf.to_crs(EPSG:32650) # WGS84 UTM 50N gdf_metric[length_km] gdf_metric.geometry.length / 1000 print(gdf_metric.groupby(class)[length_km].sum().sort_values(ascendingFalse))注意這里用哪個(gè)UTM分帶要以數(shù)據(jù)的實(shí)際覆蓋范圍為準(zhǔn)如果數(shù)據(jù)橫跨多個(gè)分帶建議轉(zhuǎn)成全國(guó)統(tǒng)一的分帶投影再做統(tǒng)計(jì)。這個(gè)統(tǒng)計(jì)結(jié)果可以直接支撐報(bào)告里的路網(wǎng)規(guī)模對(duì)比也能作為后續(xù)可達(dá)性分析的基礎(chǔ)輸入。5. 踩過(guò)的三個(gè)坑亂碼、空白圖層、整體偏移5.1 屬性表中文亂碼的定位與修復(fù)第一次打開(kāi)數(shù)據(jù)包有朋友反饋屬性表里中文全變成了問(wèn)號(hào)。這種亂碼大多是編碼不一致導(dǎo)致的。dbf屬性表在Windows舊環(huán)境里常見(jiàn)GBK編碼而QGIS在沒(méi)有.cpg文件時(shí)默認(rèn)按UTF-8讀取于是中文就亂掉。排查思路分三步先看壓縮包里有沒(méi)有.cpg文件里面寫(xiě)的是UTF-8還是GBK再看屬性表的實(shí)際編碼可以在QGIS圖層屬性→源→數(shù)據(jù)源編碼里嘗試改為GBK或GB2312如果顯示正常說(shuō)明就是編碼設(shè)置問(wèn)題最后若確實(shí)沒(méi)有.cpg我建議用ogr2ogr把文件轉(zhuǎn)成干凈版本ogr2ogr -f ESRI Shapefile beijing_road_utf8.shp beijing_road.shp -lco ENCODINGUTF-8命令行執(zhí)行后重新加載亂碼問(wèn)題基本就沒(méi)了。這個(gè)坑不算深但一旦碰上一個(gè)下午的時(shí)間可能就這么耗進(jìn)去。5.2 圖層加載后不顯示的排查鏈路另一個(gè)讓我抓狂過(guò)的問(wèn)題是文件加載成功了但地圖窗口空白一片數(shù)據(jù)線看不見(jiàn)。一次是因?yàn)橹荒玫搅艘粋€(gè).shp文件.shx和.dbf缺失軟件雖然沒(méi)直接報(bào)錯(cuò)卻無(wú)法讀取有效幾何另一次是因?yàn)樽鴺?biāo)系識(shí)別錯(cuò)誤導(dǎo)致圖層被定位到了完全無(wú)關(guān)的區(qū)域。我的排查順序是這樣先看圖層屬性→源→要素范圍如果范圍數(shù)值明顯離譜基本就是坐標(biāo)系問(wèn)題如果范圍正常但畫(huà)面仍空白檢查是不是矢量幾何為空或損壞可以用修復(fù)幾何工具處理如果一切正常就按CtrlShiftD縮放到全圖范圍。還有一種情況是道路數(shù)據(jù)本身沒(méi)問(wèn)題但當(dāng)前你給圖層設(shè)置的符號(hào)顏色在底圖上看不清把線粗設(shè)到1mm再刷新一下往往就消失了。5.3 疊加在線底圖時(shí)整體偏移的處理如果你把數(shù)據(jù)疊加到在線地圖上發(fā)現(xiàn)道路整體向某個(gè)方向平移了幾十到幾百米而且偏移量在整個(gè)城區(qū)范圍內(nèi)都很均勻那大概率不是數(shù)據(jù)損壞而是坐標(biāo)系不一致。WGS84和GCJ-02之間大約有幾十到幾百米的偏差肉眼能分辨出來(lái)。處理上先看.prj確認(rèn)當(dāng)前坐標(biāo)系再把底圖也統(tǒng)一到一個(gè)標(biāo)準(zhǔn)下如果數(shù)據(jù)是WGS84底圖也用WGS84如果數(shù)據(jù)是GCJ-02需要通過(guò)坐標(biāo)轉(zhuǎn)換把每個(gè)點(diǎn)糾偏到WGS84再輸出為新Shapefile。轉(zhuǎn)換時(shí)不要自己在代碼里手工加固定偏移不同區(qū)域偏移量是有差別的要使用成熟的坐標(biāo)轉(zhuǎn)換方法。糾偏完成后再疊加一次偏差基本就消失了。6. 我的數(shù)據(jù)預(yù)處理習(xí)慣和后續(xù)擴(kuò)展思路6.1 拿到數(shù)據(jù)后我會(huì)先做的三件事第一件事備份原包。展開(kāi)字段分析和坐標(biāo)轉(zhuǎn)換前先復(fù)制原始?jí)嚎s包避免后續(xù)操作把原始文件改壞了又沒(méi)法恢復(fù)。第二件事統(tǒng)一用Python讀取一次生成一個(gè)數(shù)據(jù)體檢報(bào)告要素條數(shù)、字段列表、坐標(biāo)系、幾何類型、范圍、等級(jí)分布記錄在項(xiàng)目readme里寫(xiě)代碼時(shí)能少踩一堆空值和類型坑。第三件事把坐標(biāo)系統(tǒng)一到項(xiàng)目主坐標(biāo)系。近兩年的項(xiàng)目我一般定成CGCS2000經(jīng)緯度發(fā)布到Web端再轉(zhuǎn)WGS84做長(zhǎng)度統(tǒng)計(jì)時(shí)再投影到UTM這種存地理、算投影的做法比較省心。這三件事做完路網(wǎng)數(shù)據(jù)才算可用狀態(tài)。很多人拿到一份數(shù)據(jù)就直接做分析結(jié)果分析做到一半發(fā)現(xiàn)數(shù)據(jù)范圍缺了某塊城區(qū)或者屬性里有一半道路沒(méi)有等級(jí)只能回頭補(bǔ)數(shù)據(jù)。預(yù)先體檢雖然多花二十分鐘但后面省的時(shí)間絕對(duì)不止二十分鐘。6.2 把路網(wǎng)數(shù)據(jù)用起來(lái)的幾個(gè)方向處理好的路網(wǎng)數(shù)據(jù)用處比想象中廣。最基礎(chǔ)的是出圖分級(jí)渲染后疊加上POI、建筑輪廓或者小區(qū)分布就是一張挺有說(shuō)服力的專題圖。進(jìn)階一點(diǎn)可以把它放進(jìn)PostGIS用PostGIS的路徑規(guī)劃擴(kuò)展做最短路徑、服務(wù)區(qū)分析特別適合做配送范圍、應(yīng)急響應(yīng)一類的場(chǎng)景。再往后你可以基于這一份路網(wǎng)結(jié)合路況數(shù)據(jù)或移動(dòng)軌跡數(shù)據(jù)計(jì)算擁堵指數(shù)、做干線通行效率對(duì)比這就屬于交通大數(shù)據(jù)分析的正規(guī)玩法了。前端展示的話我會(huì)把Shapefile轉(zhuǎn)成GeoJSON再交給Leaflet或MapLibre渲染文件體積小、瀏覽器解析快。轉(zhuǎn)換工具最簡(jiǎn)單的是QGIS右鍵導(dǎo)出也可以用GeoPandas的to_file方法gdf_4326 gdf.to_crs(EPSG:4326) gdf_4326.to_file(beijing_road.geojson, driverGeoJSON)這樣前端只要加載一個(gè)GeoJSON文件就能在地圖上交互展示道路等級(jí)和名稱了。如果只是做一個(gè)靜態(tài)匯報(bào)頁(yè)面這個(gè)方案比在線瓦片服務(wù)輕量得多。最后再提醒一句數(shù)據(jù)版權(quán)這種事平時(shí)沒(méi)人管項(xiàng)目上線被追起來(lái)非常麻煩。像這種道路矢量包如果是個(gè)人學(xué)習(xí)和研究用基本沒(méi)問(wèn)題真要用于商業(yè)項(xiàng)目最好確認(rèn)來(lái)源授權(quán)或者從開(kāi)放數(shù)據(jù)平臺(tái)同步一份可商用版本。我自己現(xiàn)在維護(hù)數(shù)據(jù)的習(xí)慣是每一次工程都記錄數(shù)據(jù)來(lái)源、坐標(biāo)系、清洗日期和版本號(hào)寧可多寫(xiě)一行說(shuō)明也不要過(guò)半年回來(lái)自己看不懂。這套操作看起來(lái)不起眼但在項(xiàng)目交底和后期維護(hù)時(shí)要少跟人解釋無(wú)數(shù)遍。本文還有配套的精品資源點(diǎn)擊獲取