here-api - 此处地理编码 API 在具有多个变音符号的地址上失败
问题描述
我通过 AWS Lambda 使用 HERE geocode api 获取芬兰街道地址。在大多数情况下,我都能获得可靠的结果,但似乎地理编码仅在查询中不超过 1(一个)元音变音字符时才有效。
我使用 aws cli 调用 lambda,如下所示:
aws lambda invoke --function-name arn:aws:lambda:eu-central-1:xxxxxxxxxxxx:function:serverlessrepo-Geocode-GeocodeFunction-XXXXXXXXXXXX out --payload '{"pathParameters": {"resourcePath": "v1/geocode"},"queryStringParameters": {"q": "Pääskystie 15, Oulu"}}'
例如,以下查询返回合理的坐标:
'Pyhäjoki'
'Töllintie 1, Oulu'
但是,如果我查询具有多个变音符号的地址,我会得到一个空的结果集。例子:
'Pyhäntä'
'Pääskystie 15, Oulu'
如果将 ä/ö 字符替换为 a/o,我也会得到一个结果,但由于从查询中删除变音符号可能会导致匹配无效,因此这似乎不是正确的解决方案。
我是否缺少 lambda 有效负载中的查询参数,还是有其他问题?
解决方案
我们尝试使用多个变音符号进行复制。结果似乎很好 https://geocode.search.hereapi.com/v1/geocode?apiKey=xxxxx&q=Pyhäntä Pääskystie 15, Oulu&language=en-US&additionaldata=&maxresults=20&gen=8
{
"items": [
{
"title": "Pääskystie 15, FI-90650 Oulu, Suomi",
"id": "here:af:streetsection:SSRElmH2PSCjTleaHm4wJB:CgcIBCCx07x9EAEaAjE1KGQ",
"resultType": "houseNumber",
"houseNumberType": "PA",
"address": {
"label": "Pääskystie 15, FI-90650 Oulu, Suomi",
"countryCode": "FIN",
"countryName": "Suomi",
"state": "Pohjois-Suomi",
"county": "Pohjois-Pohjanmaa",
"city": "Oulu",
"district": "Oulu",
"street": "Pääskystie",
"postalCode": "FI-90650",
"houseNumber": "15"
},
"position": {
"lat": 65.01821,
"lng": 25.53896
},
"access": [
{
"lat": 65.01785,
"lng": 25.53824
}
],
"mapView": {
"west": 25.53683,
"south": 65.01731,
"east": 25.54109,
"north": 65.01911
},
"scoring": {
"queryScore": 0.67,
"fieldScore": {
"city": 1.0,
"streets": [
1.0
],
"houseNumber": 1.0
}
}
}
]
}
如果您尝试的内容有所不同,您可以再试一次并恢复吗?
推荐阅读
- r - 使用重复或滑动窗口定位正则表达式字符串
- python - 运行散景服务器
- excel - Worksheet_change 从与目标相同的行但特定列的日志返回值
- regex - 使用 sed 替换“../../../”
- scala - org.apache.avro.SchemaParseException:未定义的名称
- javascript - 我需要从具有变量的对象中选择属性
- python - 使用 Jupyter Notebook 在 Cython 中的 unordered_set
- javascript - 单击时更改 html 的颜色 - javascript
- sql - 如何有条件地从串联中排除一列?
- video - 为什么 FFmpeg 强制 ISMV time_base 为 1/10000000?