精华内容
下载资源
问答
  • SuperMap 开发实例.java

    2020-06-27 16:51:25
    基于superMap 9D的iobject和isServer 完成的地图绘制编辑,具体为打开地图空间,数据集、图层的管理,线路的绘制,地图图片的输出
  • SuperMap iServer Java脚本开发
  • 一文了解SuperMap iDesktop Java定制开发

    千次阅读 2019-08-21 16:41:13
    SuperMap iDesktop Java(以下简称“Java桌面”)是超图的一款跨平台桌面GIS软件,兼容Windows和Linux。Java桌面采用插件式扩展开发框架,支持Java、Python两种语言扩展开发。今天,我们将为大家解密Java桌面中提供...

    SuperMap iDesktop Java(以下简称“Java桌面”)是超图的一款跨平台桌面GIS软件,兼容Windows和Linux。Java桌面采用插件式扩展开发框架,支持Java、Python两种语言扩展开发。今天,我们将为大家解密Java桌面中提供了哪些可以定制开发的内容,以及如何进行定制开发。

    开发环境配置

    Java桌面的扩展开发环境配置十分简单,只需在Windows或Linux系统中部署JDK 1.8环境,安装Java开发工具(推荐IDEA),即可进行扩展开发。

    除此之外,Java桌面也提供了扩展开发实例模板工程SampleCode,只需要在配置文件中进行简单的UI配置,就可实现扩展开发。

    Java桌面内置Python运行环境,提供Python IDE,因此基于Python的轻量级二次开发也很方便。

    开发环境配置完成后,你就可以基于Java桌面进行定制开发,搭建自己的应用系统。
    在这里插入图片描述
    界面功能定制

    Java桌面与经典的跨平台QT桌面不同,采用的是Ribbon UI的图形界面,通过配置文件(*.config)实现界面的布局、构建和绑定功能代码(一般为CtrlAction类)。因此,基于Java桌面开发的应用系统界面,只需要通过修改配置文件的方式就可以实现系统界面的布局,避免书写大量界面代码,方便快捷。
    在这里插入图片描述
    工具箱定制

    Java桌面的工具箱中已经提供了240+GIS工具。这些工具,不仅可以直接拿来使用,也可以通过Java语言、Python语言进行扩展,结合可视化建模使用,实现一键化的操作。

    使用Java语言进行工具定制,需要继承模型基类(MetaProcess类)实现对应的方法。界面配置方式则灵活多变,既可配置到Ribbon、右键菜单,也可配置到工具箱。
    在这里插入图片描述
    Java桌面支持通过内置的IDE编写Python脚本创建工具,也支持通过加载Python文件(*.py)的方式创建工具。在执行Python工具的同时,输出区会有对应的Python代码输出,方便及时跟踪代码的执行情况。
    在这里插入图片描述
    使用Python开发

    Java桌面中集成了数据处理、拓扑、插值、邻近分析等SuperMap iObjects Python功能,并且Java桌面的Python IDE支持Python编码风格,支持接口方法、参数的智能提示和自动补全,支持内嵌API的接口说明,可以很方便地使用Python语言进行轻量级功能定制。

    Python IDE和Java桌面做到了数据的互访问,在IDE中可以直接调用Java桌面打开数据,IDE的执行结果支持保存到数据源中,可以在地图、场景上进行可视化显示,执行结果一目了然。
    在这里插入图片描述
    经过上文的解密,想必你已经了解了Java桌面中定制开发的相关内容。如果你还想进一步的掌握这些知识点,点击文末『阅读原文』或复制以下链接至浏览器中查看,获取Java桌面下载地址,定制自己的应用系统:
    http://support.supermap.com.cn/DownloadCenter/ProductPlatform.aspx

    展开全文
  •        在SuperMap iServer产品中封装了大部分的GIS功能,比如基本的地图功能、二三维...本文将重点介绍使用iserver REST API和SuperMap iObjects for Java(以下简称Java组件)来...

    作者:dongyx

           在SuperMap iServer产品中封装了大部分的GIS功能,比如基本的地图功能、二三维空间分析功能等,但是在使用上设置的条件都是固定的,用户没法根据自己的应用场景来自定义分析条件。本文将重点介绍使用SuperMap iServer REST API和SuperMap iObjects for Java(以下简称Java组件)来扩展iServer领域组件服务,本文以通过TIN地形或者模型数据缓存提取三维数据为场景,作为示例编写扩展服务。
           一、REST API和Java组件介绍
           SuperMap iServer 提供了基于 REST 的应用编程接口——SuperMap iServer REST API,这些接口封装了大部分的 GIS 功能,包括基本的地图功能,数据编辑功能,分析功能等。SuperMap iServer 将这些 GIS 功能通过 SuperMap iServer REST API 提供给客户端,客户端使用这些 API,能够获取到相应的 GIS 能力。有关 SuperMap iServer REST Service 的使用请参见帮助文档中 REST API 一节,REST API 着重讲述了 SuperMap iServer 提供的 REST 式服务情况和资源列表。访问资源的时候需要传递的参数,资源的响应结构,在其中都有详细的介绍。
    在这里插入图片描述
           SuperMap iObjects Java 是SuperMap Objects 家族中的一员,是基于超图共相式 GIS 内核进行开发的,采用 Java 技术的组件式 GIS 开发平台。SuperMap iObjects Java 9D 具有丰富、强大的GIS功能,Java组件提供了包括地图可视化、数据处理等GIS基础功能,还包括了强大的GIS空间分析、网络分析以及三维数据处理、展示、分析一体化。
    在这里插入图片描述
    二、功能的开发
    1.JSON数据的解析
           在前后端传输时大部分是以JSON格式的数据来进行传输,而且我们提供的REST API中发送GET请求返回的也是JSON数据,这时解析JSON数据就尤为重要了。JSON数据的常用格式如下:

    {"LayerNames":[["dixin","ddd"],["djjj"]],
     "URL":"http://192.168.15.69:8090/iserver/services/3D-dixin/rest/realspace", 
     "SceneNames":["dixin","ddd"], 
     "Point2Ds":["114,35,0","115.567808730122,39.9779554893349,0"]}
    

           JSON最常用的格式是对象的 键值对,如”LayerNames”为JSON的键,冒号后面的数组为这个键的值。那么如何去获取JSON里面的值呢,在Java语言中提供了JSONObject和JSONArray两个类,如果值不是一个数组的形式可以直接通过JSONObject来获取:

    JSONObject json = JSONObject.fromObject(json2);
    String url = (String) json.get("URL");
    

           如果值是一个数组,当然也可能是数组中嵌套了一个数组,下面以一个简单的数组来举例:

    JSONArray arrayLayer = json.getJSONArray("LayerNames");
    JSONArray jsonArray = JSONArray.fromObject(arrayLayer.get(i));
    String[] layerNames = new String[jsonArray.size()];
    for(int layer=0;layer<jsonArray.size();layer++) {
    	layerNames[layer] =(String)jsonArray.get(layer);
    			}
    

           我们在这个示例中所输入的参数就是一个json对象,所以我们在一开始就需要解析这个对象,然后通过REST API发送GET请求。
    2.使用REST API发送GET请求,获取模型缓存的绝对路径和TIN地形的绝对路径,比如在iserver上可以进入到图层节点,然后点击右边的rjson,会返回一个json对象,如:
    在这里插入图片描述
           在这个json对象中可以看到图层的绝对路径位置、图层类型等等,在iserver中也给我们提供了REST API,然后通过Java的URLConnection和URL实例来发送get请求,请求成功后会返回一个String对象,然后转换为JSON对象。
    3.Java功能的开发
           本文所提到的应用场景,通过模型或者地形数据来获取三维数据的功能就需要用Java组件来实现了,实现这个功能使用的接口CacheProcessor3D缓存处理类,实现代码如下:
           地形匹配三维点:

    ArrayList<Geometry3D> resultGeometry = new ArrayList<>();
    resultGeometry = CacheProcessor3D.geometryMatchTIN(data, geometryList);
    if(!resultGeometry.isEmpty()) {
    		pointZ = resultGeometry.get(0).getPosition().z;
    		System.out.println("高度为:"+pointZ);
    	    pointzs[pointNum] =String.valueOf(pointZ);
           	   }
    

           模型匹配三维点:

    ArrayList<Geometry3D> resultGeometry = new ArrayList<>();
    resultGeometry = CacheProcessor3D.geometryMatch(data, geometryList);
    if(!resultGeometry.isEmpty()) {
    	 for(int re = 0;re<resultGeometry.size();re++) {
    			 pointZ = resultGeometry.get(re).getPosition().z;
    			 pointzs[pointSize] = String.valueOf(pointZ);
                          }
    			 return "高度:"+String.join(",", pointzs);
    			   }
    

           如果想用地形匹配三维线,可以在参数中传入二维线几何对象即可。工程源码和json对象地址:Extract
    4.环境配置
           完成所有功能开发后,就需要配置环境了,将工程导出为普通的jar包即可,在工程上,“鼠标右键”–“Export”–“选择Java jar file”–“填写存储jar的路径及名称”–“一直next”–“finish”。即可生成Extract.jar包文件。
    在这里插入图片描述
           将上面生成的calculate.jar文件拷贝到iServer产品安装目录下…\webapps\iserver\WEB-INF\lib文件夹下。
           添加服务组件,进入iServer产品安装目录下…\webapps\iserver\WEB-INF文件夹下,编辑iServer服务配置文件iserver-services.xml,将下列代码添加到components节点内部。
    在这里插入图片描述
           启动iServer服务,进入iServer产品的bin目录,运行startup.bat批处理文件。
           进入服务列表,在领域服务组里找到Extract/rest服务,填写json串,执行即可
    在这里插入图片描述
    在这里插入图片描述
           执行结果如下:
    在这里插入图片描述

    展开全文
  • 这个是supermap开发文档,有需要的可以拿走,网上也有挺多,一般都没问题的,希望学习之路一切顺利,supermap功能确实强大,二次开发很有趣。
  • superMap gis web开发

    2015-12-31 13:43:43
    适用superMap做gis web开发引用的包
  • 该范例主要是通过SuperMap iObjects java对后台数据添加到矢量数据集中,并修改数据集对应的属性。
  • 目录 第一步:添加对 SuperMap iObjects Java 的 ... 为了方便在 Eclipse 开发环境中使用 SuperMap iObjects Java 提供的接口进行开发,用户可以按照以下方式将 SuperMap iObjects Java 程序员参考集成到 Eclipse ...

    目录

    第一步:添加对 SuperMap iObjects Java 的 jar 文件的引用

    第二步:为引用的 jar 文件指定帮助文档(Javadoc)


     

              为了方便在 Eclipse 开发环境中使用 SuperMap iObjects Java 提供的接口进行开发,用户可以按照以下方式将 SuperMap iObjects Java 程序员参考集成到 Eclipse 环境中,这样,就可以在编写程序代码的过程中,在 Eclipse 环境中查看 SuperMap iObjects Java 接口的使用说明,如下图所示。

    图:鼠标停留在接口上显示帮助

    第一步:添加对 SuperMap iObjects Java 的 jar 文件的引用

    在 Eclipse 环境中,在您的开发工程中添加对 SuperMap iObjects Java 的 jar 文件的引用,根据工程的需要引用相应功能的 jar 文件。具体操作流程如下。

    1. 选中工程,再点击【project】-【Properties】。(如果不选中工程,那么Properties是灰色的,不可选)
    2. 打开如下图所示的对话框,选择左侧树中的“Java Build Path”项,在右侧区域单击“Libraries”选项卡,然后,单击“Add External JARs...”按钮;
    3. 在打开的对话框中,选择工程所需要引用的 SuperMap iObjects Java 的 jar 文件,这里选择“com.supermap.data.jar”,单击“打开”按钮,然后,单击“OK”按钮完成对 jar 文件的引用。

    第二步:为引用的 jar 文件指定帮助文档(Javadoc)

    1. 如下图所示,在引用到工程中的 jar 文件上,右键鼠标,选择菜单中的“Properties”项;

    2.打开如下图所示的对话框,单击左侧树中的“Javadoc Location”项,然后,在右侧区域中指定 SuperMap iObjects Java 接口帮助的内容。

    这里提供了两种方式来指定接口的帮助内容,根据接口帮助内容的存储位置分为:在线帮助和本地帮助。其中:

    • 在线帮助方式:通过将 SuperMap 官方网站提供的 SuperMap iObjects Java 在线帮助中的程序员参考部分的帮助内容指定给所引用的jar文件,从而达到程序员参考与Eclipse集成的目的;如果该项目使用集成官网在线帮助,你只需要输入“http://support.supermap.com.cn/DataWarehouse/WebDocHelp/iObjectsJava/ProgrammingReference/”即可
    • 本地帮助方式:SuperMap iObjects Java 安装目录下的 Help 文件夹中提供了 SuperMap iObjects Java Javadoc.zip 供程序员参考,解压该 zip 文件到当前文件夹,再点击【Browse...】,找到该解压后的文件夹地址即可,我这里是:D:\supermap-iobjectsjava-9.1.2-17224-71949-win-all\Help\SuperMap iObjects Java Javadoc  (注意:要用“Browse...”的方式,不要直接复制地址进去!)

    最终效果:

    展开全文
  • 详细介绍supermap iobjects java组件的环境部署,及程序开发入门引导
  • 基于java开发的gis技术,supermap,很稀缺的资源,希望对你有用
  • SuperMap iServer JAVA API介绍

    千次阅读 2017-04-17 11:51:04
    SuperMap iServer (以下简称iServer)的 JAVA API严格来说就是iServer JAVA类库提供的开发接口,为了区别于扩展iServer,我们说的JAVA API都是指:在其他应用中,引用iServer相关jar包进行开发的API(方式)。...

    作者:MR

        SuperMap iServer (以下简称iServer)的 JAVA API严格来说就是iServer JAVA类库提供的开发接口,为了区别于扩展iServer,我们说的JAVA API都是指:在其他应用中,引用iServer相关jar包进行开发的API(方式)。

        在 SuperMap iServer 中,一个完整的 GIS 服务的发布流程如下图所示:

    发布流程

    1. 通过服务提供者设置,可以构建服务提供者;
    2. 通过服务提供者和服务组件设置,可以构建服务组件上下文,服务组件由服务组件上下文构建而成;
    3. 通过服务组件和服务接口设置,可以构建服务接口上下文,服务接口由服务接口上下文构建而成。

        SuperMap iServer 提供了基于 REST 的应用编程接口——SuperMap iServer REST API,这些接口封装了大部分的 GIS 功能,包括基本的地图功能,数据编辑功能,分析功能等。SuperMap iServer 将这些 GIS 功能通过 SuperMap iServer REST API 提供给客户端,客户端使用这些 API,能够获取到相应的 GIS 能力。

        **iServer Java API开发主要用于后端(java语言,其他语言请使用iServer REST API或SuperMap iClient)向iServer发送HTTP请求,得到iServer响应。**当然,自己使用java.net.*相关包使用iServer REST API也能达到相同效果,使用iServer Java API的好处是,不需要自己构造请求体以及解析iServer返回内容、并且不存在浏览器的跨域限制等。

    ###使用服务提供者

        服务提供者对象可以使用对应的服务提供者设置对象来构造,在iServer帮助文档 JAVAdoc 里可以看到各种服务提供者类和其对应的设置类,请对照iServer发布的各种服务1来确定应该使用哪一个,同时也注意下各服务提供者类之间的继承关系。

        最常用的是使用各种服务接口类型服务提供者,比如RestMapProviderRestDataProvider等,其次是具体各种类型的服务提供者。比如,具体的地图服务提供者则是com.supermap.services.components.spi.MapProvider的子类,接近30个之多。
        前者(服务接口类型服务提供者,不依赖SuperMap iObjects Java环境,下面简称组件)的设置类可以简单得只需要设置一个访问地址即可(若服务设置授权访问就需要设置token或者用户名密码),构造出对应服务提供者对象就可以使用服务提供者对象的方法了。例如,构建一个 RestDataProvider 的代码如下:

    // 服务提供者设置
    RestDataProviderSetting RDPS = new RestDataProviderSetting();
    RDPS.restServiceRootURL = "http://support.supermap.com.cn:8090/iserver/services/data-world/rest";
    // 创建服务提供者
    dataProvider = new RestDataProvider(RDPS);
    // TODO
    // 获取数据源 "World" 里所有数据集名,其他请参考RestDataProvider类参考
    //List< String > dtnms = dataProvider.getDatasetNames( "World" );
    //for ( String s : dtnms )
    //{
    //	System.out.println( s );
    //}
    
    

        后者的设置类视情况定(参见对应设置类的类参考),数据来源为本地的几乎都需要工作空间信息、缓存来源信息等,这种方式依赖组件环境且不再是向目标URL发请求,而是可以直接对本地数据进行操作(转发服务的除外,看类参考)。一般在特殊应用场景才会这么使用,打开操作本地数据等更多的应用场景应该是扩展iServer和使用组件。iServer帮助文档提供了一个示例

    ###使用服务组件

        通过服务提供者和服务组件设置,可以构建服务组件上下文,服务组件由服务组件上下文构建而成。前面已经介绍了怎么构建一个服务提供者,以数据服务组件为例,创建一个数据服务组件 DataImpl 对象代码如下:

    // 服务提供者设置
    RestDataProviderSetting RDPS = new RestDataProviderSetting();
    RDPS.restServiceRootURL = "http://support.supermap.com.cn:8090/iserver/services/data-world/rest";
    // 创建服务提供者集合
    List< DataProvider > dataProviders = new ArrayList<>( );
    dataProviders.add( new RestDataProvider(RDPS));
    // 服务组件上下文
    DataContext dataContext = new DataContext( );
    dataContext.setProviders( dataProviders );
    // data服务组件实现类
    DataImpl dataImpl;
    try
    {
    	dataImpl = new DataImpl( dataContext );
    	// TODO
    	// 获取数据源 "World" 里所有数据集名,其它使用参见DataImpl类参考
    	//List< String > dtnms = dataImpl.getDatasetNames( "World" );
    	//for ( String s : dtnms )
    	//{
    	//	System.out.println( s );
    	//}
    } catch ( DataException e )
    {
    	e.printStackTrace( );
    }
    

    ###使用服务接口

        JAVA API服务接口的使用主要用于获取服务的元数据、地图瓦片、要素等。iServer的帮助文档已经提供了一个使用的完整示例,参照示例和Java doc即可。使用场景不多。


    1. 可以访问iServer服务管理页面,通过添加服务提供者(http://{IP}:{端口}/iserver/manager/spsAndspsets)、添加服务组件并绑定服务接口(http://{IP}:{端口}/iserver/manager/scsAndscsets)来发布服务加深对三层结构的了解,帮助文档点此 。通过iServer JAVA API创建服务提供者的过程和在iServer管理页面添加服务提供者一致。 ↩︎

    展开全文
  • 是超图公司的教程之一,包括SuperMap iServer Java 层次结构,开发方式,二次开发等。适合初级开发者。
  • 在SpringBoot开发环境下集成SuperMap iObjects Java组件并进行空间查询的源码
  • supermap 二次开发

    2012-10-29 14:23:57
    基于supermap objects 的二次开发
  • SuperMap二次开发

    2012-06-28 17:39:21
    SuperMap二次开发技术。通过将SuperMap的一些常用的组件添加进VS中。运用VS进行开发
  • 前些年的文章中介绍过如何在Eclipse里来通过传统的方式引用SuperMap iObjects Java进行开发。这种方式作为对SuperMap iObjects Java的入门级开发或者
  • SuperMap软件使用与开发教程包括开发基础,地图的显示与操作,GIS功能开发等内容
  • 该示例程序通过iobjects JAVA实现导入数据的进度条的功能。
  • 那么如何集成iobjects java组件到项目系统中呢?我们估计以springboot项目为例,说明如何集成iobjects java组件库。假设java组件解压后的bin目录的路径对应变量值为iobjectsjava。 配置步骤 在src同级目录建立lib...
  • 二,开发环境配置 2.1. 系统路径设置 2.2库引用 三,运行第一个示例程序 一,相关链接 组件GIS官网链接:http://support.supermap.com.cn/product/iObjects.aspx SuperMap iObjects Java百度云下载链接:...
  • 读取Excel内的点信息,根据点所属的区域信息,通过ProximityAnalyst.createThiessnPolygon构建面并生成面数据集
  • 使用 SuperMap iObjects Java/.NET 10i 产品需要 ...开发许可:主要面向二次开发用户,SuperMap iObjects Java/.NET 10i 开发许可包含了几乎所有功能的开发许可(其他功能的开发许可情况请参见下表)。 运行许可:用于
  • 之前曾经介绍过如何在Eclipse里通过iObjectsJava搭建Web开发环境,当时采用的还是传统的Java Web Application的方式...所以,笔者抓紧补充一篇文章,告诉大家如何通过SpringBoot的方式进行SuperMap iObjects Java开发
  • 超图公司的高级培训教程之一,SuperMap iServer Java扩展开发较为详细的简介,包括公交查询的实现等。
  • 但如果iServer已有的服务不能满足要求,想自行基于iObjects Java进行开发时,默认情况下要么开发出来的是个CS版的GIS应用系统,要么是个独立的BS站点,还不能与iServer使用同一个Tomcat部署(会导致许可验证出现问题)...
  • 在实际应用的过程当中,经常需要检查网络的连通性,本范例示范了如何检查与主网络不连通的弧段。
  • SuperMap IS Java介绍

    2008-07-05 18:15:39
    SuperMap iServer Java 2008是一款功能强大、性能稳定的服务式 GIS 开发平台。 该产品在服务器端,可以面向网络客户端提供与专业 GIS 桌面产品相同功能的 GIS 服务,能够管理、发布和无缝聚合Web 服务 、OGC 标准...
  • 基于SWT框架的Objects Java 快速入门,范例文档描述了从SWT框架安装到创建工程,实现地图基本操作功能的整个过程。
  • 作者:dongyx SuperMap iDesktopX是业界首款跨平台全功能桌面 GIS 软件,支持主流Linux操作系统,突破了专业桌面 GIS 软件只能运行于...接下来我就谈一下如何对SuperMap iDesktopX 10.1.0版本进行定制开发SuperMap.

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 608
精华内容 243
关键字:

java开发supermap

java 订阅