MapXtremeJava教程

上传人:工**** 文档编号:550389873 上传时间:2023-05-12 格式:DOC 页数:38 大小:110KB
返回 下载 相关 举报
MapXtremeJava教程_第1页
第1页 / 共38页
MapXtremeJava教程_第2页
第2页 / 共38页
MapXtremeJava教程_第3页
第3页 / 共38页
MapXtremeJava教程_第4页
第4页 / 共38页
MapXtremeJava教程_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《MapXtremeJava教程》由会员分享,可在线阅读,更多相关《MapXtremeJava教程(38页珍藏版)》请在金锄头文库上搜索。

1、文档供参考,可复制、编制,期待您的好评与关注! 目 录MapXtremeforJava开发教程12专题一:怎样在应用中创建地图2专题二:怎样操作地图-控制地图显示5专题三:怎样进行空间特征值的搜索7专题四:怎样对空间特征值对象编辑13专题五:怎样进行专题分析15专题六:怎样进行数据绑定-将数据库中的属性数据与地图进行动态连结23专题七:怎样实现GPS监控25专题八:怎样调用空间数据库中的地图28专题九:怎样快速响应多并发用户远程数据库数据请求32专题十:怎样将影像图与矢量图进行叠加34MapXtremeforJava开发教程1概述MapXtremeforJava(以下简称MXTJ)是基于J2E

2、E技术、服务器端的为创建Web地图服务应用的市场上第一个100%Java跨平台解决方案,使用它可实现瘦客户机/服务器、中等客户机/服务器、胖客户机/服务器三种WebGIS模式。 MXTJ主要由MapXtremeServlet、MapJ、Renderers、DataProviders四部分构成。MapXtremeServlet是系统的地图服务供给者,它提供如下服务:1提供栅格地图数据服务,2提供矢量地图数据服务,3提供图元文件数据服务(例:tab表里的属性信息);MapJ位于Mapxtreme客户端应用程序开发包API的最顶端作用有二:1管理地图集的各种状态(例:地图中心位置、地图视野、地图坐标

3、系等),2通过向MapxtremeServlet服务实例转发客户请求获得Servlet响应的数据和图片;Renderer用来生成返回客户端地图数据的组件,有四种:LocalRenderer、MapXtremeImageRenderer、.Intra-ServletContainerRenderer、CompositeRenderer。使用MapXtremeImageRender可以在远程产生地图图像,包含MapJ的应用程序和远程一个MapXtremeServlet实例通讯,产生地图图像;LocalRender将地图输出为Java2DGraphics2D对象,所有的Render在客户端产生,也即

4、所谓地图的矢量传输方式;使用IntraServletContainerRenderer不需socketconnection,从而MapXtremeSevlet将地图直接传回给客户端;CompositeRenderer将地图分为动态与静态图层,当需要更新地图时,可只更新动态图层,而静态图层仅生成一次。DataProvider是Layer(图层)对象的内部对象,它不是直接由用户创建的,但是它的描述是对图层的定义。要描述DataProvider通过如下接口:TableDescHelper描述数据;DataProviderHelper定义数据的源;ataProviderRef描述获取数据的方式。专题一

5、:怎样在应用中创建地图专题一:怎样在应用中创建地图?创建Map步骤: n创建MapJ对象n加载地图数据n设置地图尺寸n生成图片以下分别描述:1.初始化地图对象执行:myMap=newMapJ();2.加载地图数据可以打开GeoSet(*.gst)或MapDefinition(*.mdf)文件加载地图数据。MapXtreme没有默认的地图数据,所以必须人工加载地图数据。加载GeoSetmyMap.loadGeoset(geosetName,dataDir,servletURL);其中:geosetName:geoset的完整文件名(包括路径);dataDir:geoset中引用的tab地图文件的

6、位置;servletURL:mapxtremeservlet的路径,如果MapJ使用LocalDataProviderRef,servletURL可以为NULL。示例:myMap.loadGeoset(c:mapxtrememapsworld.gst,c:mapxtrememaps,http:/localhost:8080/mapxtreme40/servlet/mapxtreme;);加载MapDefinition可以加载保存在文件中的地图定义(*.mdf)或者数据库中的地图定义记录(record)。首先要创建MapDefContainer,有两种情况:地图定义在文件中:MapDefCont

7、ainermdc=newFileMapDefContainer(dir)示例:MapDefContainermdc=newFileMapDefContainer(c:mapxtrememaps)地图定义在数据库中:MapDefContainermdc=newJDBCMapDefContainer(driver,url,user,password)其中,driver,url,user,password都是数据库连接的参数。下面的示例是使用OracleSpatialMapRefContainer,地图定义保存在数据库的表中:OraSoMapDefContainermdc=newOraSoMapDe

8、fContainer(oracle.jdbc.driver.OracleDriver,jdbc:oracle:thin:machinename:1521:dbSid,username,password,tableName,Name,Map_Definition);然后加载地图定义:myMap.loadMapDefinition(mapDefContainer,name)name是地图定义的名字,如:myMap.loadMapDefinition(mdc,Asia);3.设置图象尺寸输出地图图像前需要设置地图尺寸,设置方法:MapJ.setDeviceBounds().,单位是象素。示例:myM

9、ap.setDeviceBounds(newDoubleRect(0,0,800,600);4.生成图片生成图片需要一下几步:n指定MapXtremeServletStringmapxtremeServletUrl=http:/localhost:8080/mapxtreme47/mapxtreme;n创建ImageRequestComposerImageRequestComposerimageRC=ImageRequestComposer.create(myMap,256,Color.blue,image/gif);表示图片是256色背景为蓝色的GIF图。n创建ImageRenderMapX

10、tremeImageRendererrenderer=newMapXtremeImageRenderer(mapxtremeServletURL);n生成图片返回图像的唯一办法就是使用Render对象。Renderer.render(imageRC);Renderer.toFile(comp.gif);此外,还可以使用toStream,toImage方法将图像返回。如果使用MapJ直接获取地图数据并生成图片,则使用LocalRender而不是MapXtremeImageRender。MapXtremeImageRender和LocalRender将在后面专门章节介绍。专题二:怎样操作地图-控制

11、地图显示专题二:怎样操作地图-控制地图显示?看到地图图像后,你可能需要查看地图的其他部分,看看整体或地图细节。下面介绍一些控制地图显示的方法。 1.设置地图视野(Zoom)Zoom值是地图的横向跨度,单位有地图的距离单位决定。设置zoom可以放大或缩小地图。当地图加载时,zoom就被设定了。改变zoom的方法是setZoom()。示例:/Assumingthatthecurrentdistanceunitsarekilometers,thiscommandwillsetthe/mapzoomto500kilometers.myMap.setZoom(500);2.设置地图中心有时会将地图中心定

12、位在找到的目标上或将中心定位在鼠标所点击的图像上某一点。这时需要设置地图中心。设置地图中心的方法是setCenter()。下面的示例实现了将地图中心定位在鼠标点击的某一点。示例:/创建屏幕坐标的Point对象screenpoint=newDoublePoint(event.getX(),event.getY();/将屏幕坐标转换为地理坐标worldpoint=myMap.transformScreenToNumeric(screenpoint);/设置地图中心myMap.setCenter(worldpoint);3.设置地图边界地图边界不是图象的边界,而是地图坐标系的边界,所有的地图操作都在

13、这个边界内进行。设置地图边界有两种方法:方法1:给定边界的左下角和右上角,设定边界。DoubleRectbounds=newDoubleRect(-180,-90,180,90);myMap.setBounds(bounds);方法2:给定地图的中心,宽度和高度,设定边界。DoubleRectbounds=newDoubleRect(newDoublePoint(0,0),360,180);myMap.setBounds(bounds);4.设置地图投影坐标数据存储在servermapinfow.prj文件中,包含上百种投影。可以按照如下方法,使用PRJ文件设置投影:StringcsProj=newString(AzimuthalEqu

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 国内外标准规范

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号