OpenLayers开发记录(一)
来源:互联网 发布:决战武林神弓进阶数据 编辑:程序博客网 时间:2024/05/20 05:27
1、创建Map
this.map = new OpenLayers.Map(this.mapdiv, this.options);
问题一:option是用来设置Map的,理论上Map的所有属性都可以通过option对象进行设置,比如div、maxResolution、minResolution,等。
示例1:
map = new OpenLayers.Map('map',{ maxExtent: new OpenLayers.Bounds( -128 * 156543.0339, -128 * 156543.0339, 128 * 156543.0339, 128 * 156543.0339), maxResolution: 156543.0339, units: 'm', projection: new OpenLayers.Projection('EPSG:900913'), displayProjection: new OpenLayers.Projection("EPSG:4326")});示例2:
var mapOptions = { maxExtent: new OpenLayers.Bounds(-8242894.927728, 4965204.031195, -8227290.161511, 4994963.723637), maxResolution: 116.24879860156216, projection: "EPSG:900913"};var map = new OpenLayers.Map('map', mapOptions);
问题二:可以延迟渲染地图。
map = new OpenLayers.Map();layer = new OpenLayers.Layer.WMS( "OpenLayers WMS", "http://vmap0.tiles.osgeo.org/wms/vmap0", {layers: 'basic'});map.addLayer(layer);map.render("container_id");
2、创建瓦片图层Layer
问题一:Geoserver发布PostgreSQL/PostGIS中的地图数据。
首先,需要使用PostGIS的shp2pgsql工具将shapefile数据导入数据库中。
然后,在Geoserver中创建Workspaces、Stores和Layers,在Layers中发布数据库中的某个表时,坐标系(Native SRS,Declared SRS)部分需要注意。
Native SRS,本机SRS是指地图数据本身的坐标参考系统,这是由地图数据本身的属性决定的,也是不可修改的。GeoServer会自动从数据文件中读取这一信息。相对应的Native Bounding Box则是根据本机SRS自动计算出来的边框,我们点击从数据中计算就能计算出来边框范围。
Declared SRS,定义SRS是指我们自己想要定义显示地图数据的坐标参考系统,我们通过右边的查找按钮进行查找选择。对于国内用户来说,常用的坐标系统可以通过键入“beijing”、”xian”或者4326(WGS-84的编码序号)进行查找选择。选择确定后,通过点击“compute from nativ bounds”可以计算出在这个坐标系统下的边界。
最后,根据图层预览(Layer Preview)中WMS、WFS链接的信息,就可以在OpenLayers中调用该图层了。
问题二:图层Z-Index,参考Map.js中的描述:
Z_INDEX_BASE: { BaseLayer: 100, Overlay: 325, Feature: 725, Popup: 750, Control: 1000},同时,还可以通过setZIndex()函数设置z-index。
问题三:图层的缩放级别、分辨率和范围设置。参考:http://www.shalilang.com/openlayers-map-scale-zoom-levels-methods/
OpenLayers.DOTS_PER_INCH = 72;var options = {// various ways of specifying similar things// 设置分辨率级别 resolutions: [1.40625, 0.703125, 0.3515625, 0.17578125, 0.087890625, 0.0439453125, 0.02197265625, 0.010986328125, 0.0054931640625, 0.00274658203125, 0.00137329101],// 直接设置比例尺 scales: [50000000, 10000000],// 设置最大最小分辨率 maxResolution: 0.17578125, minResolution: 0.0439453125,// 设置最大最小比例尺 maxScale: 10000000, minScale: 50000000,// 设置缩放级别层数 numZoomLevels: 5, units: "dd",// 设置范围 minResolution: "auto", minExtent: new OpenLayers.Bounds(-1, -1, 1, 1), maxResolution: "auto", maxExtent: new OpenLayers.Bounds(-180, -90, 180, 90)};map = new OpenLayers.Map( 'map' , options);
param是用来发送到地图服务器,用于地图瓦片的生成。option用于设置客户端如何显示地图瓦片。
示例:
var tiled = new OpenLayers.Layer.WMS( "Indoor", "http://localhost:8080/geoserver3D/wms", { // param参数对象,传去服务器配置地图的特点 LAYERS: 'gczxshpfloor', //请求的图层,本例是图层Group STYLES: '', // 样式 format: format, // 返回图片的格式 tiled: true, // tilesOrigin: bounds.left + ',' + bounds.bottom,// 瓦片起点 transparent: 'true' //透明图层 }, { buffer: 0, displayOutsideMaxExtent: true, // 最大范围以外的地图是否显示 maxExtent: bounds, // 最大范围 isBaseLayer: false, //是基础层,还是覆盖层 visibility: true // 默认是否可见 });
- OpenLayers开发记录(一)
- OpenLayers开发记录(二)
- OpenLayers开发学习(一)
- OpenLayers基础知识(一)
- openlayers 3(一)
- OpenLayers(一)
- openlayers 学习笔记(一)
- openlayers框架介绍(一)
- OpenLayers开发学习(二)
- openlayers 能干的事情(一)
- OpenLayers项目分析(一)项目介绍
- OpenLayers 3自定义地图工具条(一)
- 跟着实例学习OpenLayers(一)
- OpenLayers的API讲解(一)
- cakephp开发记录(一)
- IOS开发记录(一)
- openlayers学习记录
- OpenLayers项目分析一
- 软件设计师必备——操作系统·
- LTE演进过程
- Android学习笔记(十二)——使用意图传递数据的几种方式
- Linux下平均分割大文件
- ListView嵌套ListView优化
- OpenLayers开发记录(一)
- Java String类型基础
- 黑马程序员—java多线程
- 2015华为实习笨笨熊搬家交通篇JAVA/C++
- LINUX 下,编程自学七:gethostbyname
- 《禅与摩托车维修艺术》摘录(二)
- 黑马程序员_Java语法基础(二)
- 无线组网架构
- 一道淘汰85%面试者的开发者面试题