HERE 地点 API:并非所有项目都有 PVID

HERE Places API: not all items have PVID

我正在使用 HERE 地点 API。

首先我正在搜索。

例如这个查询:

https://places.cit.api.here.com/places/v1/discover/search?q=Test&at=35.6111,-97.5467&r=500&size=1&app_id=DemoAppId01082013GAL&app_code=AJKnXv84fjrb0KIHawS0Tg&show_refs=pvid&pretty

根据此文档 (Link) 如果我将 show_refs=pvid 添加到查询字符串,结果我将获得外部 id,我可以使用它来查询 lookup端点。

但结果我得到了下一个回复:

    {
    "results": {
        "next": "https://places.cit.api.here.com/places/v1/discover/search;context=Zmxvdy1pZD1hY2ExNzk3NC0zYzg3LTU5NzQtYmZkMC04YjAzMDZlYWIzMWJfMTUwNjA3NjMzMTYyMl83NDY3XzM4NTAmb2Zmc2V0PTEmc2l6ZT0x?at=35.6111%2C-97.5467&q=Test&app_id=DemoAppId01082013GAL&app_code=AJKnXv84fjrb0KIHawS0Tg",
        "items": [
            {
                "position": [
                    35.60369,
                    -97.51761
                ],
                "distance": 2756,
                "title": "Southwest Test & Balance",
                "averageRating": 0,
                "category": {
                    "id": "business-services",
                    "title": "Business & Services",
                    "href": "https://places.cit.api.here.com/places/v1/categories/places/business-services?app_id=DemoAppId01082013GAL&app_code=AJKnXv84fjrb0KIHawS0Tg",
                    "type": "urn:nlp-types:category",
                    "system": "places"
                },
                "icon": "https://download.vcdn.cit.data.here.com/p/d/places2_stg/icons/categories/02.icon",
                "vicinity": "200 NW 132nd St<br/>Oklahoma City, OK 73114",
                "having": [],
                "type": "urn:nlp-types:place",
                "href": "https://places.cit.api.here.com/places/v1/places/8403fv6k-d1b2fde0616e0326e321a54b88cd9f53;context=Zmxvdy1pZD1hY2ExNzk3NC0zYzg3LTU5NzQtYmZkMC04YjAzMDZlYWIzMWJfMTUwNjA3NjMzMTYyMl83NDY3XzM4NTAmcmFuaz0w?app_id=DemoAppId01082013GAL&app_code=AJKnXv84fjrb0KIHawS0Tg",
                "id": "8403fv6k-d1b2fde0616e0326e321a54b88cd9f53",
                "authoritative": true
            }
        ]
    },
    "search": {
        "context": {
            "location": {
                "position": [
                    35.6111,
                    -97.5467
                ],
                "address": {
                    "text": "Oklahoma City, OK 73134<br/>USA",
                    "postalCode": "73134",
                    "city": "Oklahoma City",
                    "county": "Oklahoma",
                    "stateCode": "OK",
                    "country": "United States",
                    "countryCode": "USA"
                }
            },
            "type": "urn:nlp-types:place",
            "href": "https://places.cit.api.here.com/places/v1/places/loc-dmVyc2lvbj0xO3RpdGxlPU9rbGFob21hK0NpdHk7bGF0PTM1LjYxMTE7bG9uPS05Ny41NDY3O2NpdHk9T2tsYWhvbWErQ2l0eTtwb3N0YWxDb2RlPTczMTM0O2NvdW50cnk9VVNBO3N0YXRlQ29kZT1PSztjb3VudHk9T2tsYWhvbWE7Y2F0ZWdvcnlJZD1jaXR5LXRvd24tdmlsbGFnZTtzb3VyY2VTeXN0ZW09aW50ZXJuYWw;context=c2VhcmNoQ29udGV4dD0x?app_id=DemoAppId01082013GAL&app_code=AJKnXv84fjrb0KIHawS0Tg"
        }
    }
}

响应没有对象references

是bug还是不是每个地方都有这个外部id?

看看:

https://places.cit.api.here.com/places/v1/places/8403fv6k-d1b2fde0616e0326e321a54b88cd9f53;context=Zmxvdy1pZD00YWU2ZWZjNi01ZjgzLTUwYTQtOTI4OS0xZjliMGMwNWY3NjBfMTUwNzA0NDE0OTc3NV84MTI5XzU1NDcmcmFuaz0w?app_id=DemoAppId01082013GAL&app_code=AJKnXv84fjrb0KIHawS0Tg&show_refs=pvid

https://places.cit.api.here.com/places/v1/places/8409q8yy-6af3c3e50bcb4f859686797b2be5773d;context=Zmxvdy1pZD00YWU2ZWZjNi01ZjgzLTUwYTQtOTI4OS0xZjliMGMwNWY3NjBfMTUwNzA0NDE0OTc3NV84MTI5XzU1NDcmcmFuaz0w?app_id=DemoAppId01082013GAL&app_code=AJKnXv84fjrb0KIHawS0Tg&show_refs=pvid

在这两个示例中,唯一的区别是 placeId

docs 中,没有一个参考文献说每个地方都需要或存在外部标识符。

因为它代表一个外部标识符,我相信我们可以假设它不是必需的。

这就是我们刚刚看到的您的房源 (8403fv6k-d1b2fde0616e0326e321a54b88cd9f53):这个房源没有任何外部标识符。


根据您的评论,您需要的是有关地点的信息。

所以,在你 运行 你的第一个查询之后,你应该得到类似的东西:

{
    title: "Southwest Test & Balance",
    position: [],
    id: "8403fv6k-d1b2fde0616e0326e321a54b88cd9f53",
    href: "https://[...]"
}

有了这个ID,您可以访问它:

places.cit.api.here.com/places/v1/places/8403fv6k-d1b2fde0616e0326e321a54b88cd9f53;context=Zmxvdy1pZD0zYTFlZjg5ZS02ZTY5LTUxYmEtYWFkYS1kY2UwZWMyNDdkMDBfMTUwNzEzNjUxNjI5N182NjExXzc2OTgmcmFuaz0w?app_id=DemoAppId01082013GAL&app_code=AJKnXv84fjrb0KIHawS0Tg

或直接使用href信息。

此回复已经为您提供了 ID 和 URL 以访问单个地点的所有信息。
您不需要任何其他外部 ID 或参考。

我作为 HERE Places API 的团队成员做出回应。

是的,不是每个地方都有 pvid。这就是为什么我建议改用 Sharing Id。我意识到应该改进文档以阐明这一点。

可以通过将 show_refs=sharing 添加到您的 search query or a place details request. It can be found in the field references. Once you have the sharing id you can you the lookup endpoint as you intended 来获得共享 ID。