mapgis10-11.1

本文介绍了地图文档的构成及如何使用地图文档、简单要素、shp数据和瓦片数据进行可视化展示。此外还详细讲解了要素编辑的过程,包括添加、更新和删除要素的方法,以及如何进行空间查询。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

地图文档中只是包含图层的引用,即存储当前地图的图层路径、符号系统、视图状态、图形修饰等信息,但并不存储真实的数据层。

图层(Layer)是地图(Map)的基本组成单位。图层可以是要素图层,也可以是栅格图层。要素图层有点、线、面3种显示不同类型要素类的图层,也有专题图层,如显示拓扑检查结果的图层、网络分析结果图层等;栅格图层是航片、卫星遥感影像、数字高程模型、普通图片等。

要素类、图层、要素数据集:

要素,地图中主要包括点,线,面三要素。要素类是shp格式文件,里面存储的类只能有一种,或是点或是线或是面。要素类对应一个图层文件。事实上,某一要素或者是某类要素是通过图层来表现的。
要素数据集是公用一个通用坐标系的相关“要素类”的集合,它们没有后缀名,存储在库文件内,用于按空间或主题整合相关要素类,它们的主要用途是将相关的要素类编排成一个公用的数据集,用以构建拓扑,网络数据集,地形数据集或集合网络。


 

一、地图文档,简单要素,shp数据,瓦片数据可视化

几种可视化的区别:

1.地图文档:

boolean isOpen = document.open(mapxFilePath) > 0; //打开地图文档

二维map:

Maps maps = document.getMaps();
//获取地图:根据地图索引获取,索引值从0开始
Map map = maps.getMap(0);
if (map != null) {
    //将地图map赋予给地图控件mapcontrol
    mapControl.setMap(map);
    //复位地图
    mapControl.restoreWnd();

三维场景:

Scenes scenes = document.getScenes();
//获取地图:根据地图索引获取,索引值从0开始
com.zondy.mapgis.scene.Scene scene = scenes.getScene(0);
if (scene != null) {
    //将场景添加到三维场景控件SceneControl
    sceneControl.setMapGISScene(scene);
    //复位场景
    sceneControl.reset();

 2.简单要素:

//根据数据类型创建“矢量图层”:必须指定图层类型,在此根据简单要素类类型创建
VectorLayer vectorLayer = new VectorLayer(VectorLayerType.SFclsLayer);
//设置URL:此URL为简单要素类完整URL地址
vectorLayer.setURL(featureClsURL);
//构建地图对象
map = new Map();
//填加图层
map.append(vectorLayer);

方法一:根据简单要素类URL创建图层显示,此方法最简单快捷,无需连接数据源、打开数据库等操作

 

 3.shp数据:

//根据数据类型创建矢量图层:在此创建简单要素类类型
VectorLayer vectorLayer = new VectorLayer(VectorLayerType.SFclsLayer);
//设置URL地址:设置shp数据文件的本地路径,前面需添加“file:///”字符串
vectorLayer.setURL("file:///" + shpFilePath);

//构建地图对象
map = new Map();
//叠加图层
map.append(vectorLayer);

 4.瓦片数据

接口:

【1】矢量图层  :VectorLayer类

构造函数:public VectorLayer(VectorLayerType layerType);

二、要素编辑(添加要素【点、线、面、注记】到简单要素类)

添加:自己创建注记要素  添加到该要素类

目的:对要素类  中的要素进行 更改、添加、删除 

创建布局-->初始化窗体(窗体的按钮有对应的 更改、添加、删除要素事件)

-->创建场景 -->显示标题、场景:

添加 要素事件里面(里面有:

更改要素后,会 显示该要素到地图上:

 1.hbox

javafx hbox组件是一个布局组件,它将其所有子节点(组件)放置在一个水平行中。Java HBox组件由类javafx.scene.layout.HBox .表示

此HBox在水平行中相邻布置两个按钮实例。

 

 2.显示要素在图层上思路:

创建要素实例对象(设置该对象的属性的值)-->创建map在map中添加要素实例对象 -->在mapControl.setMap(map);

3.  annotationCls :要素中的注记类对象

openByURL(String url)  :用URL方式打开类

annotationCls.append(textAnno, null, textAnnInfo);:添加对象 ;

geom - 对象几何信息;rcd - 对象属性信息;inf - 对象的图形信息

        3.1 TextAnno  :实现对文本注记的相关操作  (文本)

        3.2TextAnnInfo类  字符串注记参数信息     (图像)

4.SFeatureCls类  地理数据源 (点、线、面,矢量、栅格等)

FeatureCls.append(geoPolygon, null, regInfo): 添加对象 ;geom : 对象几何信息;rcd : 对象属性信息;inf : 对象的图形信息

二、1:

添加:.append(textAnno, null, textAnnInfo)

 

更新:  用.update(1, textAnno, record, textAnnInfo)

 

 

删除: 通过 要素id 删除 要素类中的要素

sFeatureCls.delete(oid);

 

三、空间查询 (查询的 几种方式---  通过 点条件、多边形范围条件、属性查询)

  1.QueryDef类 查询条件对象
//构造查询条件对象
QueryDef queryDef = new QueryDef();

//设置属性查询条件,参数为查询条件SQL语句字符串
queryDef.setFilter("mpPerimeter > 5000") 

//查询:调用简单要素类对象SfeatureClsZ中的query方法,传入查询条件对象即可查询
RecordSet recordSet = SfeatureCls.query(queryDef);
根据属性条件查询要素:

 

多边形范围实现要素查询:  (构建一个多边形 框, 查找在这个多边形里的要素个数)

 

点查询:

混合查询:同时通过  属性 和  矩阵查询:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值