在Angular项目中为OpenLayers地图实施地址解析器服务

问题描述 投票:0回答:1

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

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

问题是此请求需要一个“应用程序ID”和一个“应用程序代码”进行身份验证。我在Here的网站上发现,不再提供“应用程序代码”进行身份验证,并且仅API密钥和OAuth令牌(我拥有),以提高安全性。可以理解,在使用apikey代替“应用程序代码”时,它会以错误“对于应用程序ID无效的凭据”进行响应。我在查找此服务平台对象的文档时遇到麻烦,在这里我可以找到一种使用API​​密钥的方法。有什么建议?如果我解决了身份验证问题,我很确定这可以正常工作。

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

angular openlayers geocoding here-api angular-openlayers
1个回答
0
投票

我认为只需几下更改就可以开始使用。

  1. 将API的版本更新为3.1,只需在index.html中修改库URL即可。

来自

<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>

to

<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"
});

to

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

应该可以。

© www.soinside.com 2019 - 2024. All rights reserved.