Mapbox 地理编码关键词问题

4

你好,我有一个使用 Mapbox 的应用程序,同时也使用地理编码来搜索地点并导航到该位置。直到我尝试在 searchField 中搜索“Nayara”,它才出现问题。enter image description here

当我在文本字段中搜索“Nayara”时,我会收到此错误,textFieldIsChanging 代理连接到 GeoCoding API(它是异步通信,并且结果在 tableView 中填充)。我可以成功地搜索所有其他地方,但不能搜索这个地方。这是否是 Mapbox 中的 bug?这是唯一一个会使应用程序出现这种情况的关键字吗?需要专家建议。提前致谢。愉快的编码。


1
当我尝试打印对象“Identifier”时,我发现当我输入“nayara”时,标识符的前缀前面有一个空格,像这样“Q”,但是当我尝试其他关键字时,前缀是“Q”,没有空格。因此,我认为当他们寻找前缀“Q”时,当您输入“nayara”时,我们没有前缀“Q”。我猜这就是为什么MBPlaceMark类会引发这样的错误。 - Alex
1个回答

1
当进行多个异步请求时,响应可能以与请求顺序不同的顺序返回。这在请求需要不同时间(如地理编码查询)的情况下尤为严重。
在这种情况下,对于“Nayar”的查询可能比对于“Nayara”的查询需要更长的时间,而差异足够大,以至于结果以不同的顺序到达,因此“Nayar”响应会覆盖UI下拉菜单中的“Nayara”。
解决此问题的典型方法包括添加防抖动(这样只有在按键之间经过任意时间后才会进行新的API请求),或跟踪请求和响应的时间戳,并丢弃以不同顺序到达的陈旧响应。
后一种方法的示例可以在此处查看:https://github.com/mapbox/react-geocoder/pull/9

1
你的意思是说,在使用地理编码时,打字速度确实很重要,对吧?但是即使你打字慢,这个问题仍然会出现!我猜这是一个Mapbox的问题。 - Alex

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接