首页 / 浏览问题 / 移动GIS / 问题详情
android绘制面的方法
sm
23EXP 2020年08月06日
android从iserver服务上获取面信息,用什么方法在地图上绘画出面信息

1个回答

您好,从iserver获取的面对象是以什么方式存的呢?如果知道面对象的坐标值,可以直接通过GeoRegion的构造方法进行绘制:
GeoRegion geoRegion = new GeoRegion(Point2Ds)
9,232EXP 2020年08月06日
Point2Ds的值通过遍历返回值获取吗?还是能直接获得?

我是通过遍历返回值将x,y值存到Point2D里,再添加到Point2Ds里的.这样做不行,我从服务端返回面应该是一个大圈里面一个小圈,按我的方法,两个圈就会有一条线.这样就不对
Point2Ds是您那边自己添加的,如果服务端能返回Point2Ds,可以获取这个值。如果返回的是节点坐标,您可以分别将每个对象的节点坐标Point2D存在Point2Ds里面,然后去构造面对象就可以了。

mapControl.getMap().getTrackingLayer().add()这句话是不是显示面的?

现在从iserver返回的值类型是com.spermap.services.components.commontypes.Geomety

我现在想用com.supermap.data.Geometry应该怎么转,还是用什么方法,或者是我缺少引用?

TrackingLayer().add()可以显示点、线、面,您可以参考API文档。您可以获取iserver传回来的几何对象的节点坐标,然后使用Android SDK自己重新构造几何对象
请问一下,环型面应该怎样显示,或者应该怎样重新构造几何对象;有没有示例?
环形面可以绘制两个圆对象GeoCircle,然后使用小圆去裁剪大圆就可以了,裁剪可以使用Geometrist.clip()方法

上面这两张图是iserver返回值,一个points应该显示下面这个样子,一个points里就有两个面,points里全是上面那样的坐标.我代码里怎么确定从哪里分割是另一个面.

我直接把points构造几何对象显示出来是这样的,多了一条线,该怎样解决?

您那边看一下iserver能不能返回两个点串,外面一个大面为一个点串,然后里面的也是一个点串,这样在移动端就可以用小面去裁剪那个大面

刚刚那条消息最上边那两张图片就是返回值,只有一个点串,获取的所有信息都给在图片里.没有别的返回值了,parts有什么用?应该怎么解决?

下边是我显示出来多一条线的代码:

if(count>0){
    Point2Ds point2Ds=new Point2Ds();
    Point2D[] ps=new Point2D[featuresResult.features[a].geometry.points.length];
    for(int i=0;i<featuresResult.features[a].geometry.points.length;i++){
        Point2D point2d =new Point2D();
        point2d.setX(featuresResult.features[a].geometry.points[i].x);
        point2d.setY(featuresResult.features[a].geometry.points[i].y);
        point2Ds.add(point2d);
        ps[i]=point2d;
    }
    GeoStyle geoStyle=new GeoStyle();
    geoStyle.setFillBackColor(new   com.supermap.data.Color(Color.parseColor("#4876FF")));
    geoStyle.setFillOpaqueRate(40);
    GeoRegion region=new GeoRegion(point2Ds);
    region.getArea();
    region.setStyle(geoStyle);
    mapControl.getMap().getTrackingLayer().add(region,"regoinsq");
}
我们没有提供这个圆环的几何对象,需要自己通过我上面说的裁剪的方法来进行绘制。首先需要知道环形几何对象的最外面的点串和最里面的点串,分别构建面对象来进行裁剪。多一条线是因为我们会默认将起始点和终点连接起来,这样就会多一条线。
我说的不是圆环,是环形面,能不能帮我好好看看我给你发的图片?愁死我啦.
环形面也是没有直接的接口对接的,需要使用裁剪的方式。上面已经给你说了,获取两个面的节点坐标自己构造,然后用裁剪。移动端只能这么做。
...