• 基于OpenLayers加载电子地图(一)


    这里简单介绍一些基础知识还让如何基于OpenLayers加载电子地图,边学习边记录,希望自己能坚持下去!

    1. OpenLayers

         OpenLayers是一个用于开发WebGIS客户端的JavaScript包,是一个开源的项目,其设计目的是为互联网客户端提供强大的地图展示功能,包括地图数据显示与相关操作,并具有灵活的扩展机制。目前OpenLayers已经成为一个拥有众多开发者和帮助社区的成熟、流行的框架。

          在地图数据以服务的方式提供的前提下,OpenLayers实习访问地理空间数据的方法符合行业标准,支持各种公开的和私有的数据标准和资源。OpenLayers支持Open GIS协会制定的WMS、WFD等网络服务规范,可以通过远程服务的方式,将以OGC服务形式发布的地图数据加载到基于浏览器的OpenLayers客户端中进行显示,目前OpenLayers所支持的数据格式有:XML JSON GML GeoRSS KML WFS WKT(Well-Known Text)等。
    在OpenLayers里一个主要的概念就是Map,Map可以包含一些图层,这些图层既可以是矢量的,也可以是栅格的;栅格的图片一般指航拍、遥感等技术得到的图片,其本质就是一些照片,放大的时候图片会有所失真,照片一般会携带一些信息比如降雨量等等;而矢量图片是基于数学格式的,基于相应的坐标系勾画出来的,一般包含点、线、面等几何形式,图片无论如何放大都不会失真。每个图层的数据源可以是图片,也可以是kml文件等。当然Map也包含一些控件,主要是交互所用的比如:平移、缩放、要素的选择等等。
    2. 加载地图

         要创建一个电子地图应用,首先要创建一个地图。这里介绍如何创建一个简单的电子地图应用。当然一些必要的基础知识是需要的,比如 HTML,CSS ,Javascript 等是要学习的;
        OpenLayers是主要是通过HTML和Javascript编写的,所以我们得有一个编辑器,这个就很多了这里我使用的是Dreamweaver,当然你可以选择更好的一些编辑器,它会高亮显示语法和自动提示功能。
    3.  去官网下载OpenLayers的源码

      下载地址http://www.openlayers.org/download/OpenLayers-3.19.1.zip(目前最新的)
      解压后里面有很多内容,其实我们只需要拷贝目录下的OpenLayer.js、根目录下的lib目录、根目录下的img目录 theme目录 到自己的网站目录下。
      当然你也可以是使用OpenLayers中文官方站的api,加载地图的速度也是很快的,即 http://www.openlayers.cn/olapi/OpenLayers.js
    4. 编写代码加载地图

    下面我使用OpenLayers中文官方站的api 创建一个空的OpenLayersLoadMap.html文件

    代码如下:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>使用OpenLayers加载地图</title>
    <!-- 加载OpenLayers 类库 -->
    <script type="text/javascript" src="http://www.openlayers.cn/olapi/OpenLayers.js">
    </script>
    <style>
    html,body{ 100%; height:100%; margin:0; padding:0;}
    </style>
    <!-- 关键代码在这里了 -->
    <script type="text/javascript">
    function init(){
    //使用指定的文档元素创建地图
    var map = new OpenLayers.Map("rcp1_map");
    //创建一个OpenStreetMap raster layer
    //创建一个OSM图层,该层封装了地图服务地址,即服务调用URL
    var osm = new OpenLayers.Layer.OSM();
    //将已经建好的图层添加到地图容器中
    map.addLayer(osm);
    //设定视图缩放地图程度为最大
    map.zoomToMaxExtent();
    //添加地图导航控件
    map.addControl(new OpenLayers.Control.PanZoomBar());

    }
    </script>
    </head>

    <body onload="init()">
    <div id="rcp1_map" style="100%; height:100%;"
    </div>
    </body>

    </html>

    5. 运行结果如下:

  • 相关阅读:
    手把手教会你如何通过C#创建Windows Service
    推荐几款软件界面模型设计工具
    visual studio 2010小技巧
    C# 枚举在属性中运用
    C# Stream 和 byte[] 之间的转换
    推荐一款DataGridView的打印解决方案
    VB提高专辑VB编写自定义类(下)
    vb 怎么把长整型转字符串
    Android NAND: nand_dev_load_disk_state, restore failed: size required (3546398242485400641) exceeds device limit (6920
    VB中各种类型的转换
  • 原文地址:https://www.cnblogs.com/khfang/p/6059692.html
Copyright © 2020-2023  润新知