0

我正在开发一个 Angular 项目,其中一部分涉及在给定地址上显示带有标记的地图。我想使用 Here 的地理编码(和反向)服务,并按照此处的所有说明进行操作:

https://developer.here.com/blog/using-the-here-geocoder-api-for-javascript-in-an-angular-application

问题是这个请求需要一个“app id”和一个“app code”来进行身份验证。我在 Here's 网站上发现“应用程序代码”不再用于身份验证,只有 API 密钥和 OAuth 令牌是(我有),以获得更好的安全性。在使用 apikey 代替“应用程序代码”时,它会响应错误“应用程序 ID 的凭据无效”,这是可以理解的。我无法找到此服务平台对象的文档,我可以在其中找到使用 API 密钥的方法。有什么建议么?如果我解决了身份验证问题,我很确定这会正常工作。

有关该项目的更多上下文,我确实对使用地图服务(OpenLayers)有限制,但对第三方地理编码器服务没有限制。npm 上提供了一些地理编码库,但它们要么已经过时,要么不起作用。我唯一的最后手段是为另一个外部地理编码 API(我有适当的凭据)创建自己的 Http 请求-响应服务 - 我目前也在努力,但考虑到我是 Angular 的新手,这需要时间。我只是想确保在从头开始设置之前,我已经尝试了其他所有可用的服务。请帮忙!

4

1 回答 1

0

我认为只需进行一些更改,您就可以开始了。

  1. 将 API 的版本更新为 3.1,您只需修改index.html.

<script src="https://js.api.here.com/v3/3.0/mapsjs-core.js"
    type="text/javascript" charset="utf-8"></script>
<script src="https://js.api.here.com/v3/3.0/mapsjs-service.js"
    type="text/javascript" charset="utf-8"></script>

<script src="https://js.api.here.com/v3/3.1/mapsjs-core.js"
    type="text/javascript" charset="utf-8"></script>
<script src="https://js.api.here.com/v3/3.1/mapsjs-service.js"
    type="text/javascript" charset="utf-8"></script>
  1. 更新平台初始化参数,可以通过修改HereService构造函数来实现。

this.platform = new H.service.Platform({
    "app_id": "APP-ID-HERE",
    "app_code": "APP-CODE-HERE"
});

this.platform = new H.service.Platform({
  'apikey': '{YOUR_API_KEY}'
});

那应该行得通。

于 2020-04-01T04:41:36.247 回答