ESRI javascript api 3.18
ESRI javascript api 3.18
在 esri 地图中添加超过 5 个地图图像后,放大 chrome 并且 mozilla 需要很多 cpu。在 chrome 页面特别挂起。如果缩放级别最高,则页面在 chrome 中停止工作。同样在 chrome 中,在图像加载过程中页面变得有些无响应。
var map = new esri.Map('map', {
//center: [6.6032, 53.1917],
sliderStyle: "large",
basemap:'Topo',
zoom:9,
maxZoom:14,
force3DTransforms: true,
navigationMode: "classic"
});
EsriDBImageLayer= new esri.layers.MapImageLayer({
'id': 'usgs_basemap_image_overlay'
});
EsriDBImageLayer.setOpacity(0.7);
map.addLayer(EsriBaseDBImageLayer);
//dbImageList is retrieved from webservice with all
necessary data.
var tempImageList = dbImageList;
for(var i=0;i<tempImageList.length;i++){
EsriDBImageLayer.addImage(tempImageList[i]);
}
我终于想出了解决办法。这不是 arcgis-api 的问题,而是浏览器的问题。似乎 google chrome 无法正确处理大分辨率 png 图像文件。因此,如果有超过 10 个分辨率超过 3k 的 png 文件,那么不仅浏览器会挂起,而且还需要 30%+ cpu 的使用。因此,如果可能的话,最好为多个文件加载矢量文件。我有 25 个以上的文件。希望对遇到同样问题的朋友有所帮助
在 esri 地图中添加超过 5 个地图图像后,放大 chrome 并且 mozilla 需要很多 cpu。在 chrome 页面特别挂起。如果缩放级别最高,则页面在 chrome 中停止工作。同样在 chrome 中,在图像加载过程中页面变得有些无响应。
var map = new esri.Map('map', {
//center: [6.6032, 53.1917],
sliderStyle: "large",
basemap:'Topo',
zoom:9,
maxZoom:14,
force3DTransforms: true,
navigationMode: "classic"
});
EsriDBImageLayer= new esri.layers.MapImageLayer({
'id': 'usgs_basemap_image_overlay'
});
EsriDBImageLayer.setOpacity(0.7);
map.addLayer(EsriBaseDBImageLayer);
//dbImageList is retrieved from webservice with all
necessary data.
var tempImageList = dbImageList;
for(var i=0;i<tempImageList.length;i++){
EsriDBImageLayer.addImage(tempImageList[i]);
}
我终于想出了解决办法。这不是 arcgis-api 的问题,而是浏览器的问题。似乎 google chrome 无法正确处理大分辨率 png 图像文件。因此,如果有超过 10 个分辨率超过 3k 的 png 文件,那么不仅浏览器会挂起,而且还需要 30%+ cpu 的使用。因此,如果可能的话,最好为多个文件加载矢量文件。我有 25 个以上的文件。希望对遇到同样问题的朋友有所帮助