【问题标题】:What is the most efficient way to query multiple values via HERE API REST query?通过 HERE API REST 查询查询多个值的最有效方法是什么?
【发布时间】:2022-01-22 10:04:16
【问题描述】:

问题:

如何有效地处理对 HERE API 的多个位置请求?

我通常是 GET 请求和 REST 的新手,但我需要获取位置数据,并且我正在尝试使用 HERE API。我在 R 中这样做,但这个事实与我的问题无关。

这行得通:

library(httr)
library(jsonlite)

HERE_API_KEY <- #REMOVED#
url <- "https://geocode.search.hereapi.com/v1/"
zip <- 18615
country <- "United+States"

theRequest <- paste0(url,"geocode?qq=postalCode=",zip,";country=",country,"&apiKey=",HERE_API_KEY)

theResponse <- GET(theRequest)

我收到一条状态 200 消息和数据内容 -- 没有问题。

我想要什么:

上面的例子只是一个位置,但我有一个包含数千个位置的列表,我需要查找,最终试图确定位置数据集中两点之间的路由距离。

我可以创建一个循环并一次为每个位置提交一个请求,如上所示,但由于我有一堆,我想知道是否有一种首选方法可以在一次调用中提交位置列表(或把它分成几组?)这对 HERE API 会更好,并能有效地获取数据。在黑暗中刺伤,我在 3 个位置尝试了这个测试:

theRequest <- "https://geocode.search.hereapi.com/v1/geocode?qq=postalCode=18615;country=United+States&qq=postalCode=L4T1G3;country=Canada&qq=postalCode=62521;country=United+States&apiKey=#REMOVED#"

但它没有用。也许这是不可能的,我只是不了解 REST,但我想尽可能高效地处理多个请求——无论是为了我自己还是为了 HERE API 服务。提前谢谢你。

【问题讨论】:

    标签: rest get here-api here-maps-rest


    【解决方案1】:

    如果您想使用HERE Geocoding and Search API,循环访问您的数据以针对每个地址发送单独的 GET 请求是一种完全有效的方法,只需确保您不超过每秒允许的最大请求数(RPS ) 用于您的计划(例如,Freemium Plan 中的地理编码和搜索 API 为 5 RPS);否则您的查询将导致错误代码 429“请求过多”,您将不得不再次发送它们。

    或者,您可以使用HERE Batch Geocoder API,它旨在通过单个 API 调用处理大型数据集(最多 100 万条用于地理编码或反向地理编码的记录)。使用此服务包括 3 个步骤:

    1. 发送一个 POST 请求,其中包含您要进行地理编码或反向地理编码的所有数据。
    2. 调用状态端点来监控您提交的作业的状态。您可能希望定期进行此类调用,直到响应表明您的工作已完成并且您的输出已准备好下载。
    3. 下载您的结果。

    Here's an example如何使用此服务;请注意,此 API 支持 POST 请求而不是 GET。

    【讨论】:

    • 这似乎正是我在错误地搜索“multi”和“multi value”而不是“batch”之后所寻找的。我将在今天晚些时候尝试一下,但我打算这将是公认的答案。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-10
    • 2011-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-19
    相关资源
    最近更新 更多