我有一个简单的html / js网站项目,其中包含HERE映射(使用新的v3.1 API)。网站加载后,它立即崩溃,并显示模糊的TypeError,提示“无法读取未定义的属性'fc'”。
尝试包括其他HERE模块,例如mapsjs-data.js,mapsjs-core-legacy.js等。尝试了各种可能的方法来初始化地图和画布层,尝试使用其他浏览器,甚至没有任何问题受到影响。
仅当我添加一些CanvasLayer(需要在地图上绘制一些东西)时崩溃,否则一切正常,地图显示正常:
map.addLayer(new H.map.layer.CanvasLayer(function (ctx, renderParams) { return H.map.render.RenderState.DONE; }));
绘图处理程序甚至不会被调用一次(因此不是它的内容)。它只是崩溃。 地图的初始化非常简单,并遵循官方示例:
const defaultLayers = platform.createDefaultLayers();
const baseTiles = defaultLayers.vector.normal.map;
const map = new H.Map(
$("#mapContainer")[0],
baseTiles,
{
zoom: 10,
center: { lng: 13.4, lat: 52.51 }
});
这是错误还是我做错了什么?
编辑: 根据官方快速入门教程重现错误的完整示例
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, width=device-width" />
<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>
</head>
<body>
<div style="width: 640px; height: 480px" id="mapContainer"></div>
<script>
// Initialize the platform object:
var platform = new H.service.Platform({
'apikey': '{YOUR_APIKEY}'
});
// Obtain the default map types from the platform object
var maptypes = platform.createDefaultLayers();
// Instantiate (and display) a map object:
var map = new H.Map(
document.getElementById('mapContainer'),
maptypes.vector.normal.map,
{
zoom: 10,
center: { lng: 13.4, lat: 52.51 }
});
//--------------------------------------------------------------------
//this line causes the website to crash upon load
map.addLayer(new H.map.layer.CanvasLayer(function (ctx, renderParams) { return H.map.render.RenderState.DONE; }));
//--------------------------------------------------------------------
</script>
</body>
</html>