WebGIS小结之四(创建地图)

创建Map步骤:

      创建 MapJ 对象

  加载地图数据

  设置地图尺寸

  生成图片

以下分别描述:

  初始化地图对象

myMap = new MapJ()

  加载地图数据

可以打开GeoSet *.gst)或MapDefinition *.mdf )文件加载地图数据。MapXtreme没有默认的地图数据,所以必须人工加载地图数据。

    加载GeoSet    

     loadGeoset(String fileName,

                       String dataDir,

                       String servletURL);

    其中:

        fileNamegeoset的完整文件名(包括路径);

    dataDirgeoset中引用的tab地图文件的位置;

servletURLmapxtremeservlet的路径,如果MapJ使用LocalDataProviderRef

servletURL可以为NULL

    loadGeoset(InputStream in,
 
                       String dataDir,

                       String servletURL);

    其中:

    in: geoset源数据流;

   dataDir: geoset中引用的tab地图文件的位置;

servletURL: mapxtremeservlet的路径,如果MapJ使用LocalDataProviderRef

   servletURL可以为NULL

示例:

myMap.loadGeoset("C://Program Files//MapInfo//GeoSet//xian.gst",

" C://Program Files//MapInfo //maps//xian", 

http://localhost:8090/ mapxtreme45/servlet/mapxtreme );

mapURL = "http://219.245.117.110:8090/maps/xian.gst";

URL myURL = new URL(mapURL);

URLConnection myConnection = myURL.openConnection();

myInputStream = myConnection.getInputStream();

myMap.loadGeoset(myInputStream,

"C://Program Files//MapInfo //maps//xian",

"http://219.245.117.110:8090/mapxtreme45/servlet/mapxtreme");

加载 Map Definition

可以加载保存在文件中的地图定义(*.mdf)或者数据库中的地图定义记录(record)。首先要创建MapDefContainer,。

地图定义在文件中(同样也分本地数据和远程数据)

MapDefContainer mdc = new FileMapDefContainer(dir)

其中:

dir:地图定义文件路径

打开本地MapDefinition *.mdf )文件

    loadMapDefinition(MapDefContainer container,

                  String mapName);

其中:

container:地图定义文件容器

mapName: 地图定义文件名

打开远程MapDefinition *.mdf )文件

loadMapDefinition(InputStream in)

其中:

in:地图文件数据流

注:本地地图定义文件也可以采用这种方式。

示例:

打开本地MapDefinition *.mdf )文件

MapDefContainer mdc = 

new FileMapDefContainer("C://Program Files//MapInfo//mdf ");

myMap. loadMapDefinition(mdc, "xian");

打开远程MapDefinition *.mdf )文件

mapURL = "http://219.245.117.110:8090/maps/xian.mdf";

URL myURL = new URL(mapURL);

URLConnection myConnection = myURL.openConnection();

myInputStream = myConnection.getInputStream();

myMap. loadMapDefinition(myInputStream);

    地图定义在Oracle数据库中

    MapDefContainer mdc = new OraSoMapDefContainer(String driver,

                                                String url,

                                                  String user,

                                                     String password,

                                                  String table,

                                                     String nameCol,

                                                     String mapDefCol)

其中driverurluserpassword都是连接数据库参数

table:存储在数据库中的mdf表名

nameColmdf表中文件名(对应于表里的一列名)

mapDefColmdf表中实际存储地图数据列名

下面的示例是使用Oracle Spatial MapRefContainer,地图定义保存在数据库的表中:

OraSoMapDefContainer mdc = 

new OraSoMapDefContainer("oracle.jdbc.driver.OracleDriver",

    "jdbc:oracle:thin:@ 219.245.117.110:1521:myoracle",

"mapinfo", "mapinfo", "clob_content", 

"file_name","clob_column")

    myMap.loadMapDefinition(mdc, "xian") 

  设置图象尺寸

输出地图图像前需要设置地图尺寸,设置方法:MapJ.setDeviceBounds().,单位是象素。

示例:

    myMap.setDeviceBounds(new DoubleRect(0, 0, 800, 600))

  生成图片 

生成图片需要一下几步:

第一步  指定MapXtremeServlet

String mapxtremeServletUrl = 

"http://219.245.117.110:8090/mapxtreme45/servlet/mapxtreme"

第二步  创建ImageRequestComposer

ImageRequestComposer imageRC =ImageRequestComposer.create(myMap, 256, 

Color.blue,

"image/gif")

表示图片是256色背景为蓝色的GIF图。

第三步  创建ImageRender

MapXtremeImageRenderer renderer = 

new MapXtremeImageRenderer(mapxtremeServletURL) 

第四步  生成图片

本系统使用MapJ直接获取地图数据并生成图片,所以使用LocalRender而不是MapXtremeImageRender

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值