arcgis for android: 绘制带流向箭头的线 |
您所在的位置:网站首页 › arcgis画流线图 › arcgis for android: 绘制带流向箭头的线 |
arcgis for android: 绘制带流向箭头的线
需求描述
项目中需要绘制如下图所示的线,但arcgis for android中linesymbol只提供了单箭头/颜色/实虚线等简单配置项,无法通过配置更改线型. 思路既然没法直接配置线型,那我们就把箭头画上去! 利用PictureMarkerSymbol把箭头画到线上,我们需要这些东西: 1.箭头图标 2.每条线上各自需要多少箭头,以及相应的坐标位置 3.由于线的倾斜程度各不相同,我们需要算出每条线上箭头的旋转角度 得到这些东西 我们就可以渲染箭头啦,开整~ 实现过程 一.将箭头图标添加到项目中箭头如下图所示,添加过程略过 二.依据线的起点,终点,和地图当前比例尺来绘制箭头 /*** *添加箭头 *l1:线的起点 l2:线的终点 scale:当前地图比例尺(通过mapview自带接口获得 自行百度) l:线(获取某些信息用,懒得一个个传就直接把线传来了) */ private void addarrow(LineGlBean l1,LineGlBean l2,double scale,LineBean l) { //计算两点之间的实际像素 Point p1 = new Point(convertToFloat(l1.getX(),10),convertToFloat(l1.getY(),10),SpatialReferences.getWgs84()); Point p2 = new Point(convertToFloat(l2.getX(),10),convertToFloat(l2.getY(),10),SpatialReferences.getWgs84()); LinearUnit linearUnit = new LinearUnit(LinearUnitId.METERS);//距离单位 AngularUnit angularUnit = new AngularUnit(AngularUnitId.DEGREES);//角度单位 double pixel = metreToScreenPixel(GeometryEngine.distanceGeodetic(p1,p2,linearUnit, angularUnit, GeodeticCurveType.GEODESIC).getDistance(),scale,getBaseContext())*10E7; //计算总箭头数(这里一直没太弄明白单位,感兴趣的自己研究下) int number = (int)(pixel/13/2); List pointBeanList = new ArrayList(); for(int i=1;i |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |