首页 / 浏览问题 / 其他 / 问题详情
线环填充颜色在地图等级低显示,等级高时不显示
2EXP 2019年03月20日
	
var sjlystyle2 = { // 边界显示样式
		strokeColor:"#FFD700", 
		strokeOpacity:1,
		strokeWidth:2, 
		fillColor:"#FFD700",
		fillOpacity:1,
		fill:true
	};

 var line1 = new SuperMap.Geometry.LinearRing(firpoint1);
	 if(line1.getArea()>line.getArea()){
		 var lineVector = new SuperMap.Feature.Vector(line,null,sjlystyle2);
		 polygonLayer.addFeatures([lineVector]);
	 }else{
		 var lineVector = new SuperMap.Feature.Vector(line1,null,sjlystyle2);
		 polygonLayer.addFeatures([lineVector]);
	 }

使用产品:iserver 8c 810 操作系统:win7 x64
数据类型: shp文件
问题详细描述:线环填充的颜色在地图等级低的时候显示,地图等级高线环显示不全时不显示
问题重现步骤: 1.地图等级低显示颜色 2.放大地图  3.图等级高颜色不显示

就是在一个县级边界图层画一个折线,渲染小的那一部分,小的那部分地图放大填充颜色就没有了

追加

点应该是在原来位置的,就是填充颜色没了

放小一级又有了

问题已解决:

方案:

 var line1 = new SuperMap.Geometry.LinearRing(firpoint1);
	 if(line1.getArea()>line.getArea()){
		 var region = new SuperMap.Geometry.Polygon([line]);
		 var lineVector = new SuperMap.Feature.Vector(region,null,sjlystyle2);		
		 polygonLayer.addFeatures([lineVector]);
	 }else{
		 var region = new SuperMap.Geometry.Polygon([line1]);
		 var lineVector = new SuperMap.Feature.Vector(region,null,sjlystyle2);
		 polygonLayer.addFeatures([lineVector]);
	 }
    }        

包装了一下线环类,成面

1个回答

您好,能发个图看一下吗?然后相关的代码发一下
5,668EXP 2019年03月20日

     var line1 = new SuperMap.Geometry.LinearRing(firpoint1);
     if(line1.getArea()>line.getArea()){
         var lineVector = new SuperMap.Feature.Vector(line,null,sjlystyle2);
         polygonLayer.addFeatures([lineVector]);
     }else{
         var lineVector = new SuperMap.Feature.Vector(line1,null,sjlystyle2);
         polygonLayer.addFeatures([lineVector]);
     }

就是在一个县级边界图层画一个折线,渲染小的那一部分,小的那部分地图放大填充颜色就没有了

您好,您可以试一下把绘制面换成绘制一些点,然后缩放看看点是不是还在原来的位置。如果点还在的话就是前端绘制的问题,然后可以尝试换成监听缩放去每一级redraw这个polygonlayer

点看起来还在,填充没了

放小一级又有了

这个情况的话建议您监听放大缩小事件然后每放大缩小一级redraw这个填充图层

包装了一下线环类,成面,问题解决

 var line1 = new SuperMap.Geometry.LinearRing(firpoint1);
	 if(line1.getArea()>line.getArea()){
		 var region = new SuperMap.Geometry.Polygon([line]);
		 var lineVector = new SuperMap.Feature.Vector(region,null,sjlystyle2);		
		 polygonLayer.addFeatures([lineVector]);
	 }else{
		 var region = new SuperMap.Geometry.Polygon([line1]);
		 var lineVector = new SuperMap.Feature.Vector(region,null,sjlystyle2);
		 polygonLayer.addFeatures([lineVector]);
	 }
    }        

...