Here api 使用CanvasLayer在此处加载js 3.1地图时出现TypeError
我有一个简单的html/js网站项目,其中包含heremap(使用新的v3.1API)。网站加载后,它会立即崩溃,出现晦涩的TypeError,上面写着“无法读取未定义的属性'fc'” 尝试在此处包括其他模块,如mapsjs-data.js、mapsjs-core-legacy.js等。尝试了所有可能的方法初始化地图和画布层,尝试了其他浏览器,甚至都没有影响问题 只有在我添加一些画布层(我需要在地图上绘制一些东西)时才会崩溃,否则一切正常,地图显示良好:Here api 使用CanvasLayer在此处加载js 3.1地图时出现TypeError,here-api,Here Api,我有一个简单的html/js网站项目,其中包含heremap(使用新的v3.1API)。网站加载后,它会立即崩溃,出现晦涩的TypeError,上面写着“无法读取未定义的属性'fc'” 尝试在此处包括其他模块,如mapsjs-data.js、mapsjs-core-legacy.js等。尝试了所有可能的方法初始化地图和画布层,尝试了其他浏览器,甚至都没有影响问题 只有在我添加一些画布层(我需要在地图上绘制一些东西)时才会崩溃,否则一切正常,地图显示良好: map.addLayer(new H.
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>
//初始化平台对象:
var平台=新的H.service.platform({
“apikey”:“{YOUR_apikey}”
});
//从平台对象获取默认贴图类型
var maptypes=platform.createDefaultLayers();
//实例化(并显示)地图对象:
变量映射=新的H.映射(
document.getElementById('mapContainer'),
maptypes.vector.normal.map,
{
缩放:10,
中心:{lng:13.4,lat:52.51}
});
//--------------------------------------------------------------------
//此行导致网站在加载时崩溃
addLayer(新的H.map.layer.CanvasLayer(函数(ctx,renderParams){return H.map.render.RenderState.DONE;}));
//--------------------------------------------------------------------
如何初始化平台
?您需要在版本3.1中提供apikey
,而在版本3中它是app\u id
和app\u code
。0@StephaneL是的,我更新了这一点,平台初始化很简单,如示例中所示:constplatform=new H.service.platform({apikey:“xxx”,useCIT:false,useHTTPS:true})
您可以发布更多的代码片段吗?我们无法重现您的错误。@我编辑了这篇文章以包含完整的代码,请运行它。对我来说,100%的时间都失败了。开发机器是Windows10x64(最新1903更新),浏览器是最新的chrome。IDE是Visual Studio代码。@尼莫,谢谢,我们已经能够重现错误,我们将尽快与您联系修复。您如何初始化平台
?您需要在版本3.1中提供apikey
,而在版本3中它是app\u id
和app\u code
。0@StephaneL是的,我更新了这一点,平台初始化很简单,如示例中所示:constplatform=new H.service.platform({apikey:“xxx”,useCIT:false,useHTTPS:true})
您可以发布更多的代码片段吗?我们无法重现您的错误。@我编辑了这篇文章以包含完整的代码,请运行它。对我来说,100%的时间都失败了。开发机器是Windows10x64(最新1903更新),浏览器是最新的chrome。IDE是Visual Studio代码。@尼莫,谢谢你,我们已经能够重现错误,我们会尽快给你回复修复。