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在同一目录中即可)。

接下来创建一个index.html作为查看地图的页面。导入OpenLayers.js和你将要创建的js。内容需要一个div,我们给它的id起名叫做area。你有必要在写一些CSS限定#area的宽度和高度,如果乐意,加上一个border也是很不错的选择。

废话不多说,我们首先要创建一个OpenLayer.Map对象的实例: 
var map = new OpenLayers.Map("area"); 
其中的参数可以传id,也可以传ElementObject,当然id更加方便一些。

接下来就是向地图中添加图层,通常情况下使用OpenLayers.Layer的子类来完成图层的初始化。 
OpenLayers提供了一下Layers的扩展:

* OpenLayers.Layer.Image (影像)
* OpenLayers.Layer.HTTPRequest 
* OpenLayers.Layer.Grid 
* OpenLayers.Layer.WMS (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 

1、Image类封装一个实际图象作为图层内容 
HTTPRequest类可以接收一个动态生成的图片,你可以通过HTTPRequest类的参数向服务器发送参数 
2、Grid类是HTTPRequest类的子类,提供更加详细的方法 
3、WMS类用于连接WMS服务器以获得图象 
4、KaMap类用于连接MapServer 
5、EventPane类作为用于接收用户操作的图层 
6、Google类用于从Google获得图象,它仍然需要你从Google获得API KEY,并且include

7、VirtualEarth类用于操作VirtualEarth的图层

8、Markers类用于生成接收和显示用户本地标记的图层 

9、Text类用于接收CSV文件

10、GeoRSS类是Marker类的子类,用于封装接收GeoRSS并在图层中作出marker /

11、Boxes同样也是Marker类的子类,可以用div来做marker,而非image

12、TMS用于接收TMS服务器的地图

创建完图层后,可以用Map的addLayer(layer)方法插入,并执行Map的zoomToMaxExtent()方法让地图合适地显示。

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以便于操作。

此外OpenLayers.Util类可以对图片载入错误时图片框的颜色和图片框中默认的图片进行自定义,这一点是非常方便的。OpenLayers的Ajax类对创建XHR对象的过程进行了封装,可以使用它进行简单的Ajax操作。

openlayers 初步认识(转)的更多相关文章

  1. openlayers集成到vue开发

    openlayer初步加载地图 vue项目搭好后,直接用node js安装ol, 安装好后可以看看安装的版本:我用的是5..2的版本 然后看官网相对应版本的文档,都是英文文档; 官方文档:    ht ...

  2. Geoserver+Openlayers+MySQL设计思想,GeoServer服务器搭建(Docker构建镜像)

    Geoserver+Openlayers+MySQL设计思想,GeoServer服务器搭建(Docker构建镜像) 一.geoserver+openlayers+mysql主要设计思想 1.1 Geo ...

  3. 移动端之Android开发的几种方式的初步体验

    目前越来越多的移动端混合开发方式,下面列举的大多数我都略微的尝试过,就初步的认识写个简单的心得: 开发方式 开发环境 是否需要AndroidSDK 支持跨平台 开发语言&技能 MUI Win+ ...

  4. CSharpGL(29)初步封装Texture和Framebuffer

    +BIT祝威+悄悄在此留下版了个权的信息说: CSharpGL(29)初步封装Texture和Framebuffer +BIT祝威+悄悄在此留下版了个权的信息说: Texture和Framebuffe ...

  5. Android自定义View初步

    经过上一篇的介绍,大家对于自定义View一定有了一定的认识,接下来我们就以实现一个图片下显示文字的自定义View来练习一下.废话不多说,下面进入我们的正题,首先看一下我们的思路,1.我们需要通过在va ...

  6. 初步认识Node 之Node为何物

    很多人即便是在使用了Node之后也不知道它到底是什么,阅读完本文你应该会有一个初步的.具体的概念了.    Node的目标 提供一种简单的构建可伸缩网络程序的方法.那么,什么是可伸缩网络程序呢?可伸缩 ...

  7. [入门级] 基于 visual studio 2010 mvc4 的图书管理系统开发初步 (二)

    [入门级] 基于 visual studio 2010 mvc4 的图书管理系统开发初步 (二) Date  周六 10 一月 2015 By 钟谢伟 Category website develop ...

  8. HTML5 网络拓扑图整合 OpenLayers 实现 GIS 地图应用

    在前面<百度地图.ECharts整合HT for Web网络拓扑图应用>我们有介绍百度地图和 HT for Web 的整合,我们今天来谈谈 OpenLayers 和 HT for Web  ...

  9. 基于C/S架构的3D对战网络游戏C++框架 _05搭建系统开发环境与Boost智能指针、内存池初步了解

    本系列博客主要是以对战游戏为背景介绍3D对战网络游戏常用的开发技术以及C++高级编程技巧,有了这些知识,就可以开发出中小型游戏项目或3D工业仿真项目. 笔者将分为以下三个部分向大家介绍(每日更新): ...

随机推荐

  1. Ajax的完整兼容各种浏览器版本代码

    <script type="text/javascript"> function createAjax(){ var request=false; //window对象 ...

  2. 牛客网小白月赛6C(DFS,思维)

    #include<bits/stdc++.h>using namespace std;vector<int>tree[1000010];int sum=0;int dfs(in ...

  3. 洛谷P1378 油滴扩展

    P1378 油滴扩展 题目描述 在一个长方形框子里,最多有N(0≤N≤6)个相异的点,在其中任何一个点上放一个很小的油滴,那么这个油滴会一直扩展,直到接触到其他油滴或者框子的边界.必须等一个油滴扩展完 ...

  4. 【转载】C#中可使用Unity容器实现属性注入

    简介 Unity :Unity是微软团队开发的一个轻量级,可扩展的依赖注入容器,为松散耦合应用程序提供了很好的解决方案,支持构造器注入,属性注入,方法注入. 控制反转:(Inversion of Co ...

  5. 在JAVA中自定义连接数据库的工具类

    为什么要自定义数据库连接的工具类: 在开发中,我们在对数据库进行操作时,必须要先获取数据库的连接,在上一篇随笔中提到的获取数据库连接的步骤为: 1.定义好4个参数并赋值 2.加载驱动类 3.获取数据库 ...

  6. postgresql数据库linux下设置开机自启动

    设置PostgreSQL开机自启动PostgreSQL的开机自启动脚本位于PostgreSQL源码目录的contrib/start-scripts路径下cd /opt/soft_bak/postgre ...

  7. 关于Sumlime和其插件的安装

    因为近期就要去实习了,第一次实习,估计又要重新在公司的电脑里面安装Sublime和其插件了,于是现将本地的插件截图看看,顺便写一个教程吧哈哈. 我好像又省了一件事情哈哈,昨天因为懒没有尝试重新弄一次s ...

  8. Eclipse(2019-03版本)汉化

    1.Eclipse IDE 版本 eclipse-jee-2019-03-R-win32-x86_64.zip 2.Eclipse 汉化包下载 babel-R0.16.0-photon.zip 3.解 ...

  9. Python时间与日期操作(datetime、time、calendar)

    相关模块 模块 说明 time time是一个仅包含与日期和时间相关的函数和常量的模块,在本模块中定义了C/C++编写的几个类.例如,struct_time类 datetime datetime是一个 ...

  10. 【ACM】最少乘法次数 - 树

    最少乘法次数 时间限制:1000 ms  |  内存限制:65535 KB 难度:3   描述 给你一个非零整数,让你求这个数的n次方,每次相乘的结果可以在后面使用,求至少需要多少次乘.如24:2*2 ...