提高传单中的geojson性能(postgres数据库查询)

2024-09-30 02:31:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图将数据库中的一些表作为geo-JSON返回到传单中。每行大约有4000行,但是在我的传单地图上呈现geo-JSON太慢了。我是否以错误的方式运行查询?有没有办法提高性能

def layers():
    
    conn = psycopg2.connect( host=hostname, user=username, password=password, dbname=database )

    c = conn.cursor()
    c.execute("select layer, type, st_AsGeoJSON(geom4326) FROM eng_floodzone2 ")
    rows = c.fetchall()
    objects_list = []
    for row in rows:
        #geo_json={
            varcons = collections.OrderedDict()
            varcons["type"]= "Feature"
            varcons["name"]= row[0]
            varcons["properties"]= {"name": row[0]}
            varcons["geometry"]= json.loads(row[2])
            objects_list.append(varcons)
            
    getfloodzone2 = json.dumps(objects_list)

    c.execute("select sac_name, st_AsGeoJSON(geom4326) FROM eng_sac_pg ")
    rows = c.fetchall()
    objects_list = []
    for row in rows:
            varcons = collections.OrderedDict()
            varcons["type"]= "Feature"
            varcons["name"]= row[0]
            varcons["properties"]= {"SAC_NAME": row[0]}
            varcons["geometry"]= json.loads(row[1])
            objects_list.append(varcons)
    getsac = json.dumps(objects_list)
        with app.app_context():
        return render_template('index2.html', 
                               floodzone2 = getfloodzone2,
                               sac = getsac
                                )
    c.close()
    


if __name__ == '__main__':
    app.run( debug= True, use_reloader=False,  threaded=True)


Tags: namejsonappobjectstypepasswordconnlist

热门问题