• Mapnik读取PostGIS数据渲染图片


    __author__ = 'Administrator'
    # encoding: utf-8
    import sys
    import datetime
    import mapnik
    m = mapnik.Map(256,256,"+proj=latlong +datum=WGS84")
    #m.background = mapnik.Color('steelblue') # set background colour to 'steelblue'.
    
    s = mapnik.Style()
    r = mapnik.Rule()
    polygon_symbolizer = mapnik.PolygonSymbolizer(mapnik.Color('pink'))
    r.symbols.append(polygon_symbolizer)
    line_symbolizer = mapnik.LineSymbolizer(mapnik.Color('rgb(50%,50%,50%)'),0.1)
    r.symbols.append(line_symbolizer)
    s.rules.append(r)
    m.append_style('postgis',s)
    
    params = dict(dbname='geodb',table='tbsvrc_metadata_10584',user='postgres',password='postgres',host="192.98.12.244",port="5432")
    params['estimate_extent'] = True
    ds=mapnik.PostGIS(**params)
    #print(ds.envelope())
    lyr = mapnik.Layer('PostGIS Layer')
    lyr.datasource=ds
    lyr.styles.append('postgis')
    m.layers.append(lyr)
    extext = mapnik.Box2d(116.0, 36, 120, 38)
    #m.zoom_all()
    m.zoom_to_box(extext)
    startTime = datetime.datetime.now()
    for i in  range(1,40):
        path = "c:\mapnik\bj%s.png"%(i);
        mapnik.render_to_file(m,path, 'png')
        #print("running[%s]..."%(i))
    
    endTime = datetime.datetime.now()
    print("数据导入总耗时:%s描述"%((endTime - startTime).seconds))
    

    可以修改Range中的参数来测试渲染的效率,经过测试每秒可以输出10张图片。生成图片如截图:

  • 相关阅读:
    ALV 填值返回更新屏幕
    alv 的几种形式 和 函数
    JS 截取字符串的空格
    codeigniter 轻量级架构知识初习
    之前的博客挂掉了
    在服务器上运行php文件来执行操作
    浏览器判断
    php 汉字判断
    web 套打方法实现打印机功能
    WIN8
  • 原文地址:https://www.cnblogs.com/likehua/p/3908305.html
Copyright © 2020-2023  润新知