SuperMap GIS基础产品WebGIS FAQ集锦(3)
【iClient】iClient for Leaflet,如何修改map的默认渲染方式?
【解决办法】map的默认渲染方式取决于浏览器支持,可通过renderer属性设置,设置为L.SVG或L.Canvas
【iClient】leaflet在4326坐标系下为什么绘制圆后展示在地图中为椭圆?
【问题原因】因为4326为84地理坐标系.纬度离赤道越远圆变形越大,离赤道越近变形越小。绘制出来的圆有变形是正确的结果
【解决方法】可以考虑根据半径和中心点去构造polygon类型的圆。贴图
代码参考如下:
var radius = 2;
//点集
var parts = [];
//计算圆的边缘所有点
for (var i = 0; i < 360; i++) {
var radians = (i + 1) * Math.PI / 180;
var circlePoint = [Math.cos(radians) * radius + 34, Math.sin(radians) * radius + 108];
parts[i] = circlePoint;
}
var polygon1 = L.polygon(parts, {
color: ‘green’
}).addTo(map);
【iClient】在Leaflet中,如果想做出河流流动的形态,有什么方法?
【解决方案】可以参考这篇博客提供的Leaflet插件:https://www.cnblogs.com/tiandi/p/16948210.html,https://blog.csdn.net/gisarmory/article/details/109603123这篇详细讲解了Leaflet.Path.DashFlow的使用
【iClient】前端开发过程中,zoom的等级都正好不能满足要求,请问有什么更好的方法吗
【解决方案】可以不按照zoom层级缩放,可以传入resolutions数组,然后按照resolution进行缩放显示;也可以通过设置zoomSnap: 0,5,让地图成功可以设置为zoom: 13.5
【iClient】请问下图标或者风格可以设置成gif吗
【解决方案】Leaflet也可以使用gif作为点的自定义图标,或者设置为lmageOverlay图层,然后添加到map中
【iClient】iclient leaflet 如何在编辑地图以后刷新地图
【解决方案】可以通过通过重新设置图层的url地址进行刷新。
参考https://leafletjs.com/reference-1.7.1.html#tilelayer-seturl
【iClient】openlayers如何在一个地图中加载多个WMTS服务呢
【解决办法】在layers中使用ol.layer.Tile方式加载多个WMTS图层即可。注意需要根据WMTS能力文档分别设置resolutions、extent、origin
【iClient】在vue中使用mapboxgl+echarts ,无法获取到EchartsLayer怎么办?
【问题原因】vue不支持下面这种include-mapboxgl.js集合快捷引用的方式:
import mapboxgl from ‘mapbox-gl’;
import * as a from ‘@supermap/iclient-mapboxgl’;
console.log(a); // 没有EchartsLayer
【解决办法】使用vue的话你需要每个包手动去引,
比如打开include-mapboxgl.js中,可以看到“echarts”模块下,有
‘https://iclient.supermap.io/web/libs/echarts/4.9.0/echarts.min.js’
‘https://iclient.supermap.io/web/libs/echarts-liquidfill/2.0.6/echarts-liquidfill.min.js’
‘https://iclient.supermap.io/web/libs/echartsLayer/EchartsLayer.min.js’
这些文件就需要手动引入vue。