OpeStreetMap API 为我提供以下形式的标签(javascript 语法):
[{key: 'theKey1', value: 'theValue1'}, {key: 'theKey2', value: 'theValue2'} /* and so on*/];
有什么方法可以在不迭代所有标签的情况下通过键获取值?
OpeStreetMap API 为我提供以下形式的标签(javascript 语法):
[{key: 'theKey1', value: 'theValue1'}, {key: 'theKey2', value: 'theValue2'} /* and so on*/];
有什么方法可以在不迭代所有标签的情况下通过键获取值?
不。每种序列化格式(XML、JSON、js 文字等)都需要逐步读取(迭代),直到找到所需的密钥。此迭代可能发生在解析步骤中或稍后访问已解析的数据结构时,但没有办法绕过它。
如果您评估该 js 文字或JSON.parse
等效的 JSON 字符串,则确实需要循环生成的数组以找到特定的键。但是,您可以通过迭代将其转换为键值查找结构(对象)。
只有当 OSM api 允许您显式搜索它以便它是唯一的响应时,您才能直接访问该密钥。
你到底想做什么?除了主要的 API(主要用于编辑,而不是用于检索数据!)还有其他几个返回 OSM 数据的 API。例如,Overpass API有一个非常广泛的查询语言,它允许你做很多很酷的事情并创建复杂的查询来检索特定的数据。