openlayers 学习笔记(一)

【来源:http://nwaybygreifen.spaces.live.com/blog/cns!6220A29AE9D7B87!227.entry

1          开始使用openlayers

1.1       设置

先到它的官方网站http://www.openlayers.org下载他的压缩包,解压。

拷贝目录下的OpenLayer.js、根目录下的lib目录、根目录下的img目录到你网站的Scripts目录下(当然,这个只是例子,您网站的目录结构您自己说得算,只要保证OpenLayers.js/lib/img在同一目录中即可)。 然后,创建一个****.html作为查看地图的页面。

2          试验openlayers

环境:geoserver1.7

                   Openlayers2.4

                            Dreamviever8

2.1       第一个地图窗口

目标:用openlayers加载geoserver wms

步骤:

(1)       空白html文件

(2)       插入div-map

(3)       div付风格

以上为未加载地图的静态页面

代码为:

 

效果为:

 

 

(4)       插入openlayers代码引用

<link rel="stylesheet" type="text/css" href="../theme/default/style.css"/>

<script src="OpenLayers.js" type="text/javascript"></script>

(5)       js代码,主要是init()

 

第一个地图窗口就完成了

 

注1.      jsdefer的作用是页面加载完成后,执行脚本。

注2.       222

2.2       控制地图与div的占据区域

目标:让地图默认占满展现区

方法:

设置mapoptions,由其中两个因素决定:maxExtent-最大地图边界;maxResolution-最大解析度。

maxExtent设置为地图的最大边界后,maxResolution设置为auto,那地图就占满DIV

var options = {                         controls: [],

                                               maxExtent: bounds,

                                               maxResolution: "auto",

                                               projection: "EPSG:4326",

                                               numZoomLevels: 7,                                     

                                               units: 'degrees'

                                     };

                                     map = new OpenLayers.Map('map',options);

2.3       地图控制-尺度缩放

目标:填加尺度缩放控件

 

步骤:

(1)       map初始化赋参数

var options = {

                                        controls: [],

                                        //scales: [50000000, 30000000, 10000000, 5000000],

                                        maxExtent: bounds,

                                        maxResolution: "auto",

                                        projection: "EPSG:4326",

                                        numZoomLevels: 7,          (表示有几个缩放级别)             

                                        units: 'degrees'

                               };

            map = new OpenLayers.Map('map',options);

(2)       填加控件,代码

map.addControl(new OpenLayers.Control.PanZoomBar({

                    position: new OpenLayers.Pixel(2, 15)(右边距,上边距)

                }));

思考:级别的计算,个人推测由(maxResolution- minResolution)/ numZoomLevels,但是默认值是书面日后再细究。

2.4       地图控制-鼠标坐标拾取

目标:地图上鼠标移动拾取

步骤:

map.addControl(new OpenLayers.Control.MousePosition());

 

注1.      Control的构造函数可以带参数,var control = new OpenLayers.Control({div: myDiv});例如:map.addControl(new OpenLayers.Control.MousePosition({element: $('location')}));

就是制定在页面的location元素位置显示坐标。

注2.      2

注3.      2

2.5       地图控制-其他几个常用控件初次、初级使用

初次使用,就只写下代码与作用,至于参数以后用到进行研究。

(1)       鼠标拖动、滚轴放大缩小,自带一个拉框放大。

map.addControl(new OpenLayers.Control.MouseToolbar());

(2)       图层控制

map.addControl(new OpenLayers.Control.LayerSwitcher({'ascending':false}));

(3)       填加永久链接

map.addControl(new OpenLayers.Control.Permalink());

(4)       鹰眼窗口

map.addControl(new OpenLayers.Control.OverviewMap());

(5)       默认的键盘操作支持,比如pageupà

map.addControl(new OpenLayers.Control.KeyboardDefaults());

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值