前言:在網(wǎng)上搜到的關(guān)于Shape file 在iOS項(xiàng)目里的應(yīng)用的資料不是很多,在GitHub上也是搜到Python,JavaScript的相關(guān)內(nèi)容多一些。不過還是找到啦~
找到了以下兩種方法:
方法一:直接使用shape file 加上Pro.4.xcodeproj(可以在GitHub 下載),導(dǎo)入項(xiàng)目中使用。轉(zhuǎn)化為經(jīng)緯度,可直接draw到map上。
方法二:把Shape file轉(zhuǎn)化為KML格式,可直接在應(yīng)用中使用KML格式的文件,內(nèi)容類似XML
下面來具體介紹一下使用:
方法一:
Step1:參考自GitHub里grgcombs的代碼,點(diǎn)擊下載代碼。
Step2: 把后臺(tái)提供的一整個(gè)shape file添加到項(xiàng)目里。


step4:解決圖層偏移的問題,打開.prj文件

在這里找對(duì)應(yīng)SVY21的EPSG坐標(biāo)系(關(guān)于EPSG坐標(biāo)系的常識(shí)大家可以在網(wǎng)上找來看看)

把特殊投影加入代碼中:

運(yùn)行~ 大功告成
主要是要能下載到GitHub的代碼,就能實(shí)現(xiàn)了~
這個(gè)代碼畫的是polygon,如果你想要畫polyline,自行改改代碼就行。
方法二:把shape文件轉(zhuǎn)化為KML文件,把KML文件加入項(xiàng)目中就可以輕松使用啦~
KML:KML(Keyhole Markup Language,Keyhole 標(biāo)記語言)最初是由Google 旗下的Keyhole 公司開發(fā)和維護(hù)的一種基于XML 的標(biāo)記語言,利用XML 語法格式描述地理空間數(shù)據(jù)(如點(diǎn)、線、面、多邊形和模型等),適合網(wǎng)絡(luò)環(huán)境下的地理信息協(xié)作與共享。2008 年4月,KML的最新版本2.2 被OGC 宣布為開放地理信息編碼標(biāo)準(zhǔn),并改由OGC 維護(hù)和發(fā)展。
在網(wǎng)上有很多工具可以把shape文件轉(zhuǎn)化為KML文件,也可以自己寫Python來轉(zhuǎn)換,或者直接叫后臺(tái)轉(zhuǎn)換好了再給你
嘻嘻 ∠( ? 」∠)_
因?yàn)轫?xiàng)目里使用的是Google map, 配合用自家的KML格式文件配合使用,再方便不過啦~對(duì)應(yīng)的類都封裝好了
可參考Google Maps APIs Documentation
let parser = GMUKMLParser(url: url)
parser.parse()
let renderer = GMUGeometryRenderer(map: weakSelf.mapView, geometries: parser.placemarks, styles: parser.styles)
renderer.render()