Mapviewer 可以集成五种不同类型的地图图层

base map tiles layer(类似于arcgis的mxd文档)

theme based FOI layer(预先渲染好的MapViewer theme FOI)

user defined (individual) FOI layer(用户自定义的FOI)

Info Window Layer(用户自定图层)

Info Window Layer(信息弹出窗口)

Fixed Figures Layer(各种专题要素)

base map tiles layer:

一般作为背景图层,一个Base Map通常和服务器端的地图缓存(预先渲染切块好的Image 文件)实例相关联。可以利用MapBuilder 制作的Base Map和Tile Layers(见示例),也可以调用其他Map Provider,比如WMS服务等。

 

theme based FOI layer

利用MapViewer渲染好的FOI,可以借助js api来访问,还可以为每个图层自定义info-windows窗口。

User Defined FOI Layer

外部的服务图层(比如从A到B的最优路径服务),或是用自定义坐标画的geometry。

Info Window Layer

类似于google map的调出地图窗口。

Fixed Figures Layer

专题要素,比如比例尺 版权 鹰眼地图等等。

 

发布一个最简单的地图服务示例:

1 利用MapBuilder 制作的Base Map和Tile Layers

1.1 利用MapBuilder 制作的Base Map

启动MapBuilder,见我的另一篇Blogs:http://www.cnblogs.com/sirc/archive/2010/07/04/1771002.html

制作Base Map

左边Metadata中选中Base Maps图层 右键选择create base map

image

Next

 

image

输入base map名称和描述,next

image

选择已经渲染好的theme,具体如何渲染(见http://www.cnblogs.com/sirc/archive/2010/07/04/1771002.html),并选择添加要添加的theme图层

image

nexit 点击finish

以上类似arcgis制作mxd文档,是各个已经渲染好的图层的叠加。

1.2 利用MapBuilder 制作Tile Layer

选中Tile Layer 右键选择create tile layer

image

选择刚才创建好的base map

image

给tile_layer命名和描述

image

点击绿色箭头先预览地图,然后点击Update from map 得到上图,再点击zoom levels,进入缩放级别和比例尺定义界面

image

先缩放到想要切片的最大比例尺,然后minimum scale中点击from map 捕获当前地图比例尺

image

同理,缩放到想要切片的最小比例尺,然后再maxmum scale中点击from map

image

输入zoom levels 比如10,再点击generate 生成切片。

image

nexit

image

一路next知道完成 。

2 创建Data Source

2.1 进入mapviewer 管理界面 见http://www.cnblogs.com/sirc/archive/2010/07/04/1770875.html

image

点击右上角的admin进入管理登陆界面,用户名为oc4jadmin,密码为部署oc4j时定义的密码

image

进入后点击Manage MapViewer中的DataSources

image

image

输入相关信息后点击sumit进行提交

如此数据源创建完毕

点击Manage Map Tile layers

可以查看已经存在的Tile layers

image

3  制作地图显示网页

3.1 引用mapviewer js api脚本

<script language="Javascript" src="/mapviewer/fsmc/jslib/oraclemaps.js"></script>

3.2 定义一个div 用于显示地图区域

<div id="map" style="left:1%; top:1%; width:99%; height:99%"></div>

3.3 编写脚本

function showMap()
{

var baseURL = "http://"+document.location.host+"/mapviewer";
var mapCenterLon = -122.45;
var mapCenterLat = 37.6706;
var mpoint = MVSdoGeometry.createPoint(mapCenterLon,mapCenterLat,8307);
var mapZoom = 5;

var mapview = new MVMapView(document.getElementById("map"), baseURL);
mapview.addBaseMapLayer(new MVBaseMap("MB_TUTORIAL.BM_US"));

//MB_TUTORIAL.BM_US 即为:Data Source.Tile Layer 刚才创建的Data source名称和tile layer名称
mapview.setCenter(mpoint);
mapview.setZoomLevel(mapZoom);
mapview.addNavigationPanel("EAST");
mapview.display();

}

完整代码如下:

<html>
<head>
<script language="Javascript" src="/mapviewer/fsmc/jslib/oraclemaps.js"></script>
<script language=javascript>
function showMap()
{

var baseURL = "http://"+document.location.host+"/mapviewer";
var mapCenterLon = -122.45;
var mapCenterLat = 37.6706;
var mpoint = MVSdoGeometry.createPoint(mapCenterLon,mapCenterLat,8307);
var mapZoom = 5;

var mapview = new MVMapView(document.getElementById("map"), baseURL);
mapview.addBaseMapLayer(new MVBaseMap("MB_TUTORIAL.BM_US"));
mapview.setCenter(mpoint);
mapview.setZoomLevel(mapZoom);
mapview.addNavigationPanel("EAST");
mapview.display();

}
</script> 
</head>
<body onLoad="javascript:showMap();">
<div id="map" style="left:1%; top:1%; width:99%; height:99%"></div>
</body>
</html>

并把网页保存在mapviewer运行服务器上,比如D:\app\OracleBI\oc4j_bi\j2ee\home\applications\Spatial_MapView\web\Test.html

4 运行http://detaillee-pc:9704/mapviewer/test.html,既可浏览地图服务,如下图所示:

image 

转载请注明出处,谢谢!

Detail.lee

福州大学福建省空间信息工程研究中心

2010.07.05

posted on 2010-07-05 13:17  SIRC_Detaillee  阅读(3711)  评论(0)    收藏  举报