OpenLayers是一个开源的js框架,用于在您的浏览器中实现地图浏览的效果和基本的zoom,pan等功能。OpenLayers支持的地图来源 包括了WMS,GoogleMap,KaMap,MSVirtualEarth等等,您也可以用简单的图片作为源,在这一方面OPenLayers提供了 非常多的选择。 
      要使用OpenLayers,您可以到它的官方网站http://www.openlayers.org下载他的压缩 包,解压后可以看到其中的一些目录和 文件。拷贝dist目录下的OpenLayer.js、根目录下的lib目录、根目录下的img目录到你网站的scripts目录下(当然,这个只是例 子,您网站的目录结构您自己说得算,只要保证OpenLayers.js,/lib,/img在同一目录中即可)。 
      OpenLayers中最重要的2个对象Map和Layer.
      OpenLayers.Map的实体化方法:
         var map = new OpenLayers.Map("map");
         这里参数"map"对应页面中显示Map地图的DIV的id名称。
     OpenLayers.Layer为创建图层对象,OpenLayers提供了很多图层的扩展:
         * OpenLayers.Layer.Image 
         * OpenLayers.Layer.HTTPRequest 
         * OpenLayers.Layer.Grid 
         * OpenLayers.Layer.WMS 
         * OpenLayers.Layer.KaMap 
         * OpenLayers.Layer.EventPane 
         * OpenLayers.Layer.Google 
         * OpenLayers.Layer.VirtualEarth 
         * OpenLayers.Layer.Markers 
         * OpenLayers.Layer.Text 
         * OpenLayers.Layer.GeoRSS 
         * OpenLayers.Layer.Boxes 
         * OpenLayers.Layer.TMS

Image类封装一个实际图象作为图曾内容 
         HTTPRequest类可以接收一个动态生成的图片,你可以通过HTTPRequest类的参数向 服务器发送参数 
         Grid类是HTTPRequest类的子类,提供更加详细的方法 
         WMS类用于连接WMS服务器以获得图象 
         KaMap 类用于连接MapServer 
         EventPane类作为用于接收用户操作的图层 
         Google类用于从Google获得图象,它仍然需 要你从Google获得API KEY,并且include 
         VirtualEarth类用于操作VirtualEarth的图层 
         Markers 类用于生成接收和显示用户本地标记的图层 
         Text类用于接收CSV文件 
         GeoRSS类是Marker类的子类,用于封装接收 GeoRSS并在图层中作出marker 
         Boxes同样也是Marker类的子类,可以用div来做marker,而非image 
         TMS 用于接收TMS服务器的地图

OpenLayers还提供了丰富的Control类为地图浏览添加一些工具,继承自OpenLayers.Control类

* OpenLayers.Control.LayerSwitcher 
         * OpenLayers.Control.MouseDefaults 
         * OpenLayers.Control.MousePosition 
         * OpenLayers.Control.MouseToolbar 
         * OpenLayers.Control.OverviewMap 
         * OpenLayers.Control.PanZoom 
         * OpenLayers.Control.PanZoomBar 
         * OpenLayers.Control.Permalink 
         * OpenLayers.Control.Scale

这些类的实例会在地图浏览的“窗口”上增加一些工具栏或是“按钮”,增加互动性和功 能性。

OpenLayers对常用的数据结构进行了封装 
         # OpenLayers.LonLat 
         # OpenLayers.Size 
         # OpenLayers.Pixel 
         # OpenLayers.Bounds以便于操作。

现在写个最简单的例子做记录:

<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>WMS MAP INIT</title>
    <script src="http://localhost:8080/geoserver/openlayers/OpenLayers.js" type="text/javascript"></script>
    <style type="text/css">
        #map {
            width: 100%;
            height: 100%;
            border: 1px solid black;
        }
    </style>
    <script defer="defer" type="text/javascript">
        function init(){
            //数据存储的左、下、右、上的范围,默认为NULL
            var bounds = new OpenLayers.Bounds(
                17831.799, 91085.208,
                18221.799, 91287.26
            );
            //创建一个OpenLayers.Map构造新的地图。
            var options = {
                controls: [],
                maxExtent: bounds,
                maxResolution: 1.5234375,
                projection: "EPSG:4326",
                units: 'degrees'
            };
            var map = new OpenLayers.Map('map', options);
            //创建一个图层信息
            var layer = new OpenLayers.Layer.WMS("State", "http://127.0.0.1:8080/geoserver/wms", {
                        layers: "dwg:0_line"
                    });//
            //将创建的图层对象添加到Map对象
            map.addLayer(layer);
            //显示地图
            map.zoomToMaxExtent();
        }
    </script>
  </head>
  
  <body onload="init()">
    <div id="map"></div>
  </body>
</html>

OpenLayers基础知识:的更多相关文章

  1. .NET面试题系列[1] - .NET框架基础知识(1)

    很明显,CLS是CTS的一个子集,而且是最小的子集. - 张子阳 .NET框架基础知识(1) 参考资料: http://www.tracefact.net/CLR-and-Framework/DotN ...

  2. RabbitMQ基础知识

    RabbitMQ基础知识 一.背景 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然 ...

  3. Java基础知识(壹)

    写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...

  4. selenium自动化基础知识

    什么是自动化测试? 自动化测试分为:功能自动化和性能自动化 功能自动化即使用计算机通过编码的方式来替代手工测试,完成一些重复性比较高的测试,解放测试人员的测试压力.同时,如果系统有不份模块更改后,只要 ...

  5. [SQL] SQL 基础知识梳理(一)- 数据库与 SQL

    SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 目录 What's 数据库 ...

  6. [SQL] SQL 基础知识梳理(二) - 查询基础

    SQL 基础知识梳理(二) - 查询基础 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5904824.html 序 这是<SQL 基础知识梳理( ...

  7. [SQL] SQL 基础知识梳理(三) - 聚合和排序

    SQL 基础知识梳理(三) - 聚合和排序 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5926689.html 序 这是<SQL 基础知识梳理 ...

  8. [SQL] SQL 基础知识梳理(四) - 数据更新

    SQL 基础知识梳理(四) - 数据更新 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5929786.html 序 这是<SQL 基础知识梳理( ...

  9. [SQL] SQL 基础知识梳理(五) - 复杂查询

    SQL 基础知识梳理(五) - 复杂查询 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5939796.html 序 这是<SQL 基础知识梳理( ...

随机推荐

  1. Ubuntu 12.04下NFS安装配置图解

    以前就听说过nfs服务,但是一直没有用,在学习制作根文件系统的时候,才算是真正用上它了,我感觉它还不错,通过它“挂载”制作好的根文件系统.它在嵌入式中的角色就用下面的一张图说明吧! 用网线将主机与开发 ...

  2. 电快速脉冲群EFT(概念)

    电快速瞬变脉冲群 简称EFT(Electrical Fast Transient)是指脉冲群有特定的持续时间(规定为15mS),特定的脉冲周期(300mS)的脉冲, 脉冲群中的单个脉冲有特定的重复周期 ...

  3. SpringMVC经典系列-15对SpringMVC的总结---【LinusZhu】

    注意:此文章是个人原创,希望有转载须要的朋友们标明文章出处,假设各位朋友们认为写的还好,就给个赞哈.你的鼓舞是我创作的最大动力,LinusZhu在此表示十分感谢,当然文章中如有纰漏,请联系linusz ...

  4. 利用Nginx搭建RTMP视频直播,点播服务器,ffmpeg推流,回看

        一.环境和工具 ubuntu 14.04 desktop 不用server的原因是一部分的演示用到了linux视频播放和直播软件,自己还要装桌面,麻烦. 不建议使用 最新的16TLS,我一开始 ...

  5. ARDUINO PWM

    转至:http://www.sl088.com/voyage/2012/10/11506.slboat#.E5.8F.91.E7.8E.B0 http://www.engblaze.com/micro ...

  6. stm32独立看门狗

    转载:http://blog.sina.com.cn/s/blog_7f1dc53b01010mqa.html 实验现象: 开始LED1亮,LED2熄灭,若不隔时间按KEY1则发现LED2因独立看门狗 ...

  7. EasyUI的treegrid组件动态加载数据问题的解决办法

    http://www.jquerycn.cn/a_3455 —————————————————————————————————————————————————————————————————————— ...

  8. DBA不可不知的操作系统内核参数

    背景 操作系统为了适应更多的硬件环境,许多初始的设置值,宽容度都很高. 如果不经调整,这些值可能无法适应HPC,或者硬件稍好些的环境. 无法发挥更好的硬件性能,甚至可能影响某些应用软件的使用,特别是数 ...

  9. Python python的输入输出

    #-*- coding:utf-8 -*- #屏蔽中文乱码方案一(官方推荐) #这个语句必须顶行写 #屏蔽中文乱码方案二(不建议使用) '''#coding=utf-8 ''' #input(),输入 ...

  10. 【C#】【MySQL】C# 查询数据库语句@Row:=@Row+1以及执行存储过程失败解决方案

    如何实现数据库查询产生虚拟的一列序号的功能: ) )AS r; 该语句可以实现产生虚拟的一列数据在MySQL中运行没有问题. 但是在C#里面调用去出现了错误"Parameter '@ROW' ...