yuanhung yeh
2020-10-27 5b98e9857d5081c30fcef0206c38f384dc542514
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
import os
import requests
from config import StagingConfig as conf
 
from flask import Flask
from flask import request
 
from ctls import Db
from pub.utils import Coords
from pub.extactJSON import ParserMOI as moiParser
from pub.queryMoi import QueryElevation as moiEvApi
from pub.postgis import Dbconnect as gis3d
 
#from parser import FeatureTableParser
 
app = Flask(__name__)
#app.config.from_envvar('YOURAPPLICATION_SETTINGS')
#app.config.from_object(os.environ['APP_SETTINGS'])
app.config.from_object(conf)
 
dbConf={"host": os.environ.get("PG_HOST", '192.168.11.42'),
            "port": os.environ.get("PG_PORT", '5115'),
            "database": os.environ.get("PG_DATABASE",'pgDMMSNS'),
            "user": os.environ.get("PG_USER",'postgres'),
            "password": os.environ.get("PG_PASS",'simple000'),
            "default97": os.environ.get("DB_SRS",'3826')
    }
 
dbSRS=os.environ.get("DB_SRS",'3826')
 
#dbConf= { "host":"192.168.11.42" ,
#    "port":"5115",
#    "database":"pgDMMSNS",
#    "user":"postgres",
#    "password":"simple000"
#}
 
def printcol(col):
    print(col)
 
 
@app.route('/')
def hello():
    return '?1/2/' 
 
@app.route('/testPostgis')
def testdb():
    gis3d.testSelect();
    return 'done'
 
@app.route('/resetEv/<string:tablename>')
def resetTableEv(tablename):
    print('running resetEv')
    colgeom= request.args.get('geom',default='geom')
 
    #poi=  Updateev0 (self.updDB)
    #gis3d.fetchTable(dbConf,
    #      poi.sql_sel() ,
    #      poi)
    procSetTableEv= Db(dbConf)
    procSetTableEv.resetTabelEv(tablename,dbSRS=dbSRS,srcgeom=colgeom,desgeom=colgeom)
 
    return 'done'
          
@app.route('/getEv/<string:tablename>')
def featureEvby84(tablename):
   
    limit= request.args.get('limit',default=100,type=int)
    colgeom= request.args.get('geom',default='geom')
    print('running getEv')
    print(request.query_string) 
    procGetTableEv=Db(dbConf)
    procGetTableEv.getTableEv(tablename,limit=limit,dbSRS=dbSRS,srcgeom=colgeom,desgeom=colgeom)
 
    return 'table={}({}-{}),limit={}'.format(tablename,colgeom,dbSRS,(limit))
 
 
@app.route('/test') #/<string:name>')
def hello_name():
    proj= request.args.get('proj', default =3857 , type = int)
    
    print( "proj={}".format(proj))
    moiApi= moiEvApi()
    (result, urltext)= moiApi.test()
    if(result.status_code == requests.codes.ok):
         resultjs=moiParser.toJSON(result.text)
 
 
    return "testmoi={},\n url={}".format(resultjs,urltext)
 
@app.route('/transform')
def transformCoord():
    src_proj= request.args.get('src',default=3826,type=int)
    des_proj= request.args.get('des',default=4326,type=int)
    dx = request.args.get('x',default=0,type=float)
    dy = request.args.get('y',default=0,type=float) 
    result=[]
    ret_json ={'message':'input format GET/POST ','src':3826,'des':4326,'x':0,'y':0}
    #print( src_proj,des_proj,dx,dy)
    trans=Coords()
    if(src_proj == 3826 and des_proj==4326):
         result= trans.crs_t97tow84(dx,dy) 
         ret_json= {'x':result[0],'y':result[1],'srid':4326}
    if(src_proj == 4326 and des_proj==3826):
         result= trans.crs_w84tot97(dx,dy)  
         ret_json= {'x':result[0],'y':result[1],'srid':3826} 
    if(src_proj == des_proj):
         ret_json= {'x':dx,'y':dy,'srid':src_proj}
    return ret_json
 
 
if __name__ == '__main__':
    print (dbConf)
    moiapi=os.environ.get("MOI_API","TW_DLA_2001084_20061226_20M_3826_DEM")
    moikey=os.environ.get("MOI_KEY","43da4f4a-e2e0-43b0-a432-8b7975f43d9e")
 
    print('moikey=',moikey)
    print('moiapi=',moiapi)
    app.run(host='0.0.0.0',port=5000)