当前位置:首页>python>实战:用Python和Flask搭建一个坐标转换Web服务

实战:用Python和Flask搭建一个坐标转换Web服务

  • 2026-10-11 08:19:17
实战:用Python和Flask搭建一个坐标转换Web服务

实战:用Python和Flask搭建一个简单的坐标转换Web服务,手机电脑都能用


话说上篇文章发了PyProj坐标转换的东西之后,有读者在后台问我,说每次都要跑Python脚本,太麻烦了,能不能搞个网页打开就能用。

我想想,确实是啊。让同事用吧,得帮他装Python环境,配依赖,完了还得教他怎么运行,麻烦死。自己用倒是无所谓,但总归不太方便。

那就整一个Web服务吧,部署上去,浏览器打开就能用,手机也能访问,外业的时候查坐标也方便。说干就干。

框架用哪个

Flask吧,这名字挺有意思。轻量级,代码少,部署快,适合我们这种小需求,够用就行。

坐标转换还是用PyProj,跟之前一样。

思路

很简单:搞个Web接口,接收坐标参数,返回转换结果。

参数校验要做好,不然有人给你传个null或者乱码,程序直接崩。错误处理也整上,好歹告诉用户出啥问题了。

上代码,差不多这样:

from flask import Flask, request, jsonify
from pyproj import Transformer

app = Flask(__name__)

# 创建转换器
transformer = Transformer.from_crs('epsg:4326', 'epsg:3857', always_xy=True)

@app.route('/convert')
defconvert():
try:
        lon = float(request.args.get('lon'))
        lat = float(request.args.get('lat'))
        x, y = transformer.transform(lon, lat)
return jsonify({'x': x, 'y': y})
except Exception as e:
return jsonify({'error': str(e)}), 400

if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0', port=5000)

跑起来访问 http://localhost:5000/convert?lon=120&lat=30 就出结果,JSON格式,自己解析。

手机想用的话,要么扔到公网服务器,要么内网通过IP访问。

还能加啥

目前只能WGS84转Web墨卡托,比较局限。后面可以加:

  • • 讓用户自己选输入输出坐标系
  • • 搞个历史记录存一下
  • • 批量转换

先这样,想起来再加。

小提示

生产环境debug一定关掉!血的教训。最好加个身份验证,省得被乱用。频率限制也整一个。

没了,想到啥说啥。有问题问,我知道的就答。

#Python #Flask #Web服务 #API #坐标转换 #PyProj #部署 #移动端访问 #WGS84 #Web墨卡托 #JSON #参数校验 #身份验证 #频率限制 #经纬度转换

以往文章合集:

1.HouanSoftware套件介绍

2.HouanSoftware套件之AutoCAD插件使用说明

3.HouanSoftware套件之应用程序使用说明

4.python在测绘领域的应用

最新文章

随机文章