python - plotly-dash:使用 google places / mapbox api 在下拉列表/文本字段中自动完成地址
问题描述
我有一个地址字段和一个下拉列表,我打算在其中填充来自 mapbox API 的自动完成建议。在回调中,我从 input 传递查询字符串id='address_autocomplete'
。但是,我没有看到函数人口下拉菜单返回的值。
dbc.InputGroup(
[
dbc.InputGroupAddon("Property Address"),
dcc.Input(id='address_autocomplete'),
dcc.Dropdown(id='address_dropdown',style={'width':'60%'})
],
style={'margin-top':'30px', 'width': '53%', 'float': 'left'},
),
# Property address autocomplete
@app.callback(Output('address_dropdown', 'options'),
[Input('address_autocomplete', 'value')])
def autocomplete_address(value):
print(value)
addr = {}
# Call mapbox API and limit Autocomplete address suggestions
ret_obj = geocoder.forward(value, lon=-112.0913905, lat=33.4514652, limit=3)
response = ret_obj.json()
for i in range(len(response['features'])):
addr["res{}".format(i)] = response['features'][i]['place_name']
if value:
return [{'label': addr['res_0'], 'value': addr['res_0']},
{'label': addr['res_1'], 'value': addr['res_1']},
{'label': addr['res_2'], 'value': addr['res_2']}]
# Function call
r = geocoder.forward('Washington Park', lon=-112.0913905, lat=33.4514652, limit=3)
rj = r.json()
# Return
Washington Park, Phoenix, Arizona 85015, United States
Washington Park Playground, Phoenix, Arizona 85015, United States
Washington Park, Chicago, Illinois 60637, United States
解决方案
推荐阅读
- angular - 使用存储在 AngularFire5 中的字段中的文档 ID 从其他文档中获取值
- aws-api-gateway - 从 VPC 访问 Api Gateway API 操作?
- javascript - 如何正确设置 NodeMailer SMTP 电子邮件
- firebase - 在 Firebase 对象已被访问后启用 Web 的 Firebase 离线持久性
- r - 使用带有 lapply() 的 R 中的值列表进行过滤太慢了
- python - 如何将像素转换为角度
- r - 如何从不同格式的数据集中重新编码和创建多个变量?
- spring-boot - 如何使用 VScode 调试 bootRun
- assembly - int 21h ah 02h 由于某种原因不起作用
- javascript - 找不到模块'react-i18next'