【发布时间】:2019-09-03 10:42:26
【问题描述】:
我想将我的纬度和经度值传递给我的烧瓶路线,但每次我收到此错误:ValueError: Must be a coordinate pair or Point
但是我已经尝试过这个并且它工作正常:
from flask import Flask, render_template
from geopy.geocoders import Nominatim
app = Flask(__name__)
geolocator = Nominatim()
@app.route('/location')
def lang_and_lat():
location = geolocator.reverse("21.0943, 81.0337")
address = location.address
return render_template('ip.html', address=address)
if __name__ == '__main__':
app.run(debug=True)
from flask import Flask, render_template
from geopy.geocoders import Nominatim
app = Flask(__name__)
geolocator = Nominatim()
@app.route('/location/<lat>/<lang>')
def lang_and_lat(lat, lang):
location = geolocator.reverse(lat, lang)
address = location.address
return render_template('ip.html', address=address)
if __name__ == '__main__':
app.run(debug=True)
【问题讨论】:
-
在第一个 sn-p 中,您传递一个
str类型的位置参数,表示用逗号分隔的纬度和经度,而在第二个中,您传递两个str类型的位置参数。跨度> -
我想将纬度和经度值作为参数传递给我的烧瓶路线
-
您正在调用 API 中的函数。你不能只是按照你想要的方式传递值;您必须以 API 函数准备接受它们的方式传递它们。我见过的所有 geolocator.reverse 示例都采用一个字符串,其中两个值用逗号分隔。您收到的错误消息表明您应该能够将两个值放在一个 Point 对象中并传递它,但我还没有看到任何这样的例子。
-
然后这样做,然后按照
geolocator.reverse()的预期将它们加入单个str -
我发现了这个:programcreek.com/python/example/93521/geopy.Point,它显示了如何创建 geopy.Point 对象:origin = geopy.Point(latitude=lat, longitude=lon)
标签: python-3.x flask geopy