我正在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的新手,这需要时间。我只想确保在尝试从头开始设置之前,已经尝试了所有其他可用服务。请帮助!
我认为只需几下更改就可以开始使用。
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>
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}'
});
应该可以。