arcgis for js画扇形并给它填充不同的颜色

有点颓废了,好久不写了。不写东西还是会忘。

最近项目用到了arcigs地图这一块,需要在上面做一个扇形表示区间。

不多说了先看效果图。




看起来还不错吧啊,

画扇形需要半径和角度,下面的是我找的一个算法

function getPoints(center, radius, c, endAngle,
						pointNum) {
			var sin;
			var cos;
			var x;
			var y;
			var angle;

			var points = new Array();
			points.push(center);
			for ( var i = 0; i <= pointNum; i++) {
				angle = startAngle + (endAngle - startAngle) * i
						/ pointNum;
				sin = Math.sin(angle * Math.PI / 180);
				cos = Math.cos(angle * Math.PI / 180);
				x = center[0] + radius * sin;
				y = center[1] + radius * cos;
				points[i] = [ x, y ];
			}

			var point = points;
			point.push(center);
			return point;
		}

有几个参数,第一个是中心点,第二第三是开始角度和结束角度(正北为0度),最后一个为弧面上点的个数

接下来就是填充颜色了

function drawPoint() {
			 var clon = 116.570132;
			 var clat = 24.80105;
			 var apoint1 = getPoints([clon, clat], 2, -30, 45, 60);
			 apoint1[apoint1.length] = apoint1[0];
				 
			 var s111 = new esri.symbol.SimpleFillSymbol(
						esri.symbol.SimpleFillSymbol.STYLE_SOLID, 
						new esri.symbol.SimpleLineSymbol(
							esri.symbol.SimpleLineSymbol.STYLE_NULL, 
							new dojo.Color([255,0,0]),
							2
						),
						new dojo.Color([255,255,0,0.5])
				);
			 var otherInfo = new esri.InfoTemplate("地理位置:${name}","经度:${lon}</br>纬度:${lat}");
			 var polygon2 = new esri.geometry.Polygon(apoint1);
			 var gr3 = new esri.Graphic(polygon2, s111, {"lon": 12,"lat": 444,"name": 5555}, otherInfo);
			 var g1 = new GraphicsLayer();
			 g1.add(gr3);
			 linemap.addLayer(g1);
		}

这个就是我随便测试的一个扇形,填充颜色主要使用SimpleFillSymbol这个类




已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页