首页 / 浏览问题 / 移动GIS / 问题详情
SuperMap IMobile能够从矢量图中提取要素点的信息吗
1EXP 2023年07月04日
本人读的环境研究生,本科是通信工程专业的,导师硬要我给项目做一个APP。主要是一个土壤采集的APP,一开始都挺顺利,需要用到的gis知识较少,我一边学习Android开发一边完成任务倒也进度还行。可是最近导师对我提出要求不仅要能完成普通的数据采集功能,最好能够从给定的土壤底图中之前提取各个点位的土壤信息。最近很焦虑,对于移动GIS开发这一块完全没经验,导师师兄师姐们又没人懂这方面,无人指导,网上有关移动GIS开发的教程又比较少,希望有人能给我指条明路,到底能不能实现这一功能,有没有比较具体的移动GIS开发的书籍或者视频可以学习的

2 个回答

您好,矢量数据集可以添加属性记录,能够记录空间等信息的,可以去917课堂看跟多教程
GIS学堂 (supermap.com)

3,525EXP 2023年07月04日
DatasetVector dataset = (DatasetVector) m_MapControl.getMap().getLayers().get("kml@kml#1").getDataset();
//获取记录集
//false表示获取的是数据中所有的记录集,true表示获取与数据集关联的记录集但是没有数据
//record count 968
Recordset recordset =  dataset.getRecordset(false, CursorType.DYNAMIC);
while(recordset.moveNext()){
    //记录集操作
    Geometry geometry =  recordset.getGeometry();
    if(geometry == null)
    {
        continue;
    }
    GeometryType type = geometry.getType();
    if(type == GeometryType.GEOPOINT3D || type == GeometryType.GEOPOINT)
    {
        String stationName = (String) recordset.getFieldValue("Name");//属性表 有个表头,你知道表头了你就知道哪一列了,自然可以通过每一行recordset获取具体那个数据
        if( stationName == null||stationName.isEmpty())
        {
            continue;
        }

        Point2D innerPoint = ((GeoPoint)geometry).getInnerPoint();

    }else if(type == GeometryType.GEOLINE3D || type == GeometryType.GEOLINE)
    {
        GeoLine tmpLine = (GeoLine) geometry;
      
    }
}

望采纳

58EXP 2023年07月06日
...