1

OpeStreetMap API 为我提供以下形式的标签(javascript 语法):

[{key: 'theKey1', value: 'theValue1'}, {key: 'theKey2', value: 'theValue2'} /* and so on*/];

有什么方法可以在不迭代所有标签的情况下通过键获取值?

4

2 回答 2

2

不。每种序列化格式(XML、JSON、js 文字等)都需要逐步读取(迭代),直到找到所需的密钥。此迭代可能发生在解析步骤中或稍后访问已解析的数据结构时,但没有办法绕过它。

如果您评估该 js 文字或JSON.parse等效的 JSON 字符串,则确实需要循环生成的数组以找到特定的键。但是,您可以通过迭代将其转换为键值查找结构(对象)。

只有当 OSM api 允许您显式搜索它以便它是唯一的响应时,您才能直接访问该密钥。

于 2013-08-15T12:06:27.630 回答
0

你到底想做什么?除了主要的 API(主要用于编辑,而不是用于检索数据!)还有其他几个返回 OSM 数据的 API。例如,Overpass API有一个非常广泛的查询语言,它允许你做很多很酷的事情并创建复杂的查询来检索特定的数据。

于 2013-08-16T10:56:40.120 回答