Matlab畫地圖

MATLAB自帶畫地圖功能,比如

geoshow('landareas.shp', 'FaceColor', [0.5 1.0 0.5]);


可是MATLAB卻沒有自帶畫中國地圖,因此可以在網上下載shp、shx、dbf等地圖數據文件。它有兩種,第一種,它是以線的數據結構來保存的;另一種是以多邊形來保存的。下面分別可以看到兩種數據結構。

       Geometry: 'Line'
    BoundingBox: [2x2 double]
            Lon: [1x178 double]
            Lat: [1x178 double]
         FNODE_: 2
         TNODE_: 7
         LPOLY_: 2
         RPOLY_: 3
         LENGTH: 7.7430
       BOU2_4M_: 1
     BOU2_4M_ID: 23
         GBCODE: 61030
       Geometry: 'Polygon'
    BoundingBox: [2x2 double]
            Lon: [1x5785 double]
            Lat: [1x5785 double]
           AREA: 54.4470
      PERIMETER: 68.4890
       BOU2_4M_: 2
     BOU2_4M_ID: 23
       ADCODE93: 230000
       ADCODE99: 230000
           NAME: 'ºÚÁú½­Ê¡'

其實都是大同小異,然而我比較喜歡用后來,因為之前需要判斷某個點在哪個省裏,這時候多邊形就方便多了。


下載了shp、shx、dbf等地圖數據文件後,可以用以下的命令來載入數據並繪圖

gx=shaperead('C:\Users\user\Documents\MATLAB\province\gx_city.shp','usegeocoords',true);%載入地圖數據
geoshow(gx,'FaceColor', [0.5 1.0 0.5],'EdgeColor','red');%把地圖畫出來
geoshow(lat,lon,'marker','.','markeredgecolor','Green','Displaytype','point');%在地圖上手動加幾個點
上面說到,我比較喜歡用多邊形結構的數據文件,因為可以方便判斷某個點在不在某些區域裏。可以用以下的命令來判斷點(x,y)是否在某個省內

inpolygon(x,y,gx(1).Lon,gx(1).Lat)%或者inpolygon(lat,lon,gx(1).Lat,gx(1).Lon)


BTW,geoshow可以畫三維圖的,有興趣可以去http://cn.mathworks.com/help/map/ref/geoshow.html?searchHighlight=geoshow看看。


~學習筆記~



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值