如何使用 HTTPS 调用 HERE Maps API v3
Posted
技术标签:
【中文标题】如何使用 HTTPS 调用 HERE Maps API v3【英文标题】:How to call HERE Maps API v3 using HTTPS 【发布时间】:2015-02-17 20:01:53 【问题描述】:如何通过 HTTPS 调用 HERE 地图?
我在我的服务器上使用 HTTPS,所以当我调用它时:
<script src="http://js.api.here.com/v3/3.0/mapsjs-core.js" type="text/javascript" charset="utf-8"></script>
<script src="http://js.api.here.com/v3/3.0/mapsjs-service.js" type="text/javascript" charset="utf-8"></script>
由于“混合内容”,浏览器阻止了请求,因此没有显示地图...
我尝试将脚本源中的“http”更改为“https”,但我遇到了同样的问题,因为两个 javascript 在其代码中都有“http”调用。
后端是用 Grails 编写的,通道是使用 Spring Security Core 插件保护的。
【问题讨论】:
【参考方案1】:你需要从 https 加载 API,另外你需要设置:
// Create a platform object to communicate with the HERE REST APIs
var platform = new H.service.Platform(
useCIT: true,
app_id: app_id,
app_code: app_code,
useHTTPS: true
);
诀窍是 useHTTPS: true,如文档中所述:HERE Developers Guide
【讨论】:
【参考方案2】:对于 HTTPS:
通过“https协议”加载js和css文件 在创建 H.service.Platform 实例时强制使用 HTTPS对于“https 协议”,在 head 部分加载 CSS:
<link rel="stylesheet" type="text/css" href="https://js.api.here.com/v3/3.0/mapsjs-ui.css" />
对于“https协议”,在关闭BODY标签之前加载JS:
<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 type="text/javascript" src="https://js.api.here.com/v3/3.0/mapsjs-ui.js"></script>
<script type="text/javascript" src="https://js.api.here.com/v3/3.0/mapsjs-mapevents.js"></script>
通过这些步骤,所有 js 和 CSS 都已正确加载。但是当 SDK 加载 Tiles 时,您可能会遇到一些问题。要允许 SDK 正确加载 HTTPS 协议所需的所有资产,您需要在 Platform 构造函数中使用“useHTTPS”选项:
this.platform = new H.service.Platform(
'app_id': process.env.VUE_APP_HERE_APP_ID,
'app_code': process.env.VUE_APP_HERE_APP_CODE,
'useHTTPS': true
)
更新:对于 3.1,我对 HTTPS 协议没有任何问题。
【讨论】:
相关协议现在被视为anti-pattern,如果支持,您应该始终使用https以上是关于如何使用 HTTPS 调用 HERE Maps API v3的主要内容,如果未能解决你的问题,请参考以下文章
Here maps iOS SDK:旋转Here maps中的标记
Here Maps - 在 TabLayout 的 Fragment 中使用 MapFragment
HERE Maps Distance to Destination 总是返回高值
区域形状的检索 - Here Maps API with V7