后台核心代码使用GIS大神wandergis开源的coordtransform模块(Github链接https://github.com/wandergis/coordtransform)
自己只是用Python web框架tornado做了一个web接口层,核心代码如下:
根据请求参数uid找到其上传的Excel文件,transform参数决定使用哪个转换函数,使用pandas处理Excel,简单高效。
代码语言:python代码运行次数:3复制from coordTransform.coordTransform_utils import *
def convert(row,convertFunc):
lng=row['经度']
lat=row['纬度']
try:
lng=float(lng)
lat=float(lat)
latlng=convertFunc(lng,lat)
row['经度'],row['纬度']=latlng
except:
pass
return row
dictTransform={'gcj02_to_bd09':gcj02_to_bd09,'bd09_to_gcj02':bd09_to_gcj02,
'wgs84_to_gcj02':wgs84_to_gcj02,'gcj02_to_wgs84':gcj02_to_wgs84,
'bd09_to_wgs84':bd09_to_wgs84,'wgs84_to_bd09':wgs84_to_bd09,
}
class coordTransformHandler(tornado.web.RequestHandler):
def get(self):
self.render('coordTransform.html')
def post(self):
uid=self.get_argument('uid')
transform=self.get_argument('transform')
xlsxPath=os.path.join('static/files/xlsx',uid '.xlsx')
xlsxPath2=os.path.join('static/files/xlsx',uid '_convert.xlsx')
transformFunc=dictTransform[transform]
print(xlsxPath)
if uid and os.path.exists(xlsxPath):
df0=pd.read_excel(xlsxPath)
df2=df0.apply(lambda x:convert(x,transformFunc),axis=1)
df2.to_excel(xlsxPath2,index=False)
self.write({'result':1})
return
self.write({'result':0})