应用最广泛的的地图数据应该是shape格式,网络上有很多免费下载资源。MeteoInfoLab中读取shape文件的函数是shaperead,参数即文件名,返回数据包含图形和属性信息的图层对象。矢量图层按照图元类型通常分点、线、面三种,都可以通过geoshow函数加入到地图坐标系(Axesm)中。在geoshow函数中可以指定图层的显示的Symbol(颜色等),可以设置facecolor, edgecolor, size等,这种情况下图层的所有图元都会以同一个Symbol来显示。也可以利用图层的属性信息来生成更复杂的图例(makesymbolspec函数),函数第一个参数是图元类型(point, line, polygon),还需要设置一个属性字段(field='NAME'),然后利用属性数据来设置图例。这里例子中加载了rivers.shp图层,该图层是世界主要河流,这里只显示长江、黄河,用下面的代码处理:

ss = makesymbolspec('line', {'value':'Yangtze', 'color':(0,255,255), 'size':1}, {'value':'Huang He', 'color':(0,255,255), 'size':1}, field='NAME')
geoshow(river_layer, symbolspec=ss)

例子中还加载了中国省会城市点图层,可以在geoshow函数中设置labelfield等参数来给图层添加标注(城市名)。

脚本代码如下:

#Set data folders
basedir = 'D:/MyProgram/Distribution/java/MeteoInfo/MeteoInfo'
mapdir = os.path.join(basedir, 'map')
#Read shape files
bou2_layer = shaperead(os.path.join(mapdir, 'bou2_4p.shp'))
bou1_layer = shaperead(os.path.join(mapdir, 'bou1_4l.shp'))
river_layer = shaperead(os.path.join(mapdir, 'rivers.shp'))
city_layer = shaperead(os.path.join(mapdir, 'res1_4m.shp'))
#Plot
axesm()
geoshow(bou2_layer, edgecolor='lightgray')
geoshow(bou1_layer, facecolor=(0,0,255))
ss = makesymbolspec('line', {'value':'Yangtze', 'color':(0,255,255), 'size':1}, \
{'value':'Huang He', 'color':(0,255,255), 'size':1}, field='NAME')
geoshow(river_layer, symbolspec=ss)
geoshow(city_layer, facecolor='r', size=4, labelfield='NAME', fontname=u'楷体', fontsize=16, yoffset=15)
xlim(72, 136)
ylim(16, 55)

运行结果:

最新文章

  1. Linux.NET实战手记—自己动手改泥鳅(上)
  2. JS自动格式化输入的数字/千位分隔符
  3. 非正常关闭myeclicps后,出现错误Errors occurred during the build.的解决方法
  4. Java HashMap的死循环
  5. html5的感想
  6. MySql基础整理
  7. iOS -类目,延展,协议
  8. linux更改文件所有者命令chown命令的使用困惑
  9. top指令
  10. ASP.NET MVC 及 Areas 简单控制路由
  11. asp.net 时间比较,常用于在某段时间进行操作
  12. Asp.net MVC 与 Asp.net Web API 区别
  13. C语言中 struct成员变量顺序对内存的占用
  14. 命令行编译swc
  15. CentOS6.5 安装vncserver实现图形化访问
  16. mysql: [Warning] Using a password on the command line interface can be insecure. ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
  17. RabbitMQ(一):RabbitMQ 安装与配置(Mac)
  18. CPU和线程的关系
  19. Map与实体之间转换
  20. PowerDesigner 教程

热门文章

  1. VMware参数disk.EnableUUID生效扫描不出来UUID
  2. nmap端口扫描工具下载和安装使用
  3. softmax交叉熵损失函数求导
  4. JavaFx在Main中获取Controller初始化相关配置和Fxml
  5. Mybatis 注解形式
  6. Salesforce Javascript(一) Promise 浅谈
  7. 【Jenkins】三、设置定时任务
  8. WEB 应用缓存解析以及使用 Redis 实现分布式缓存
  9. vue学习08 v-bind指令
  10. 解决npm被墙的问题