`
xyanzhao
  • 浏览: 18135 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

OpenLayers S1

阅读更多
Q. JS如何编写类与生成构造函数
A.
  基类为Class,代码如下:
   var Class = {//原始基类
  create: function() {   
    return function() {
      this.initialize.apply(this, arguments);
     }
  }
}


var Book = Class.create();  //声名为Book的类
Book.prototype = {        //给Book类添加成员和方法
   className:"Book",        //属性:类名
   initialize: function(name){ //构造函数
   this.name = name;
   },
   getName:function(){   //方法:取书名
   return this.name;
   }
   }  
   var book = new Book('XYZ');  //创建一个Book对像
   document.write(book.getName());       //打印书名  
  
  
Q. Opanlayers如何添加WMS服务层
A.
  map = new OpenLayers.Map( 'map',{ controls: [] } );
  layer = new OpenLayers.Layer.WMS( "test",              //层别名
          "http://192.168.2.60:8083/wmsconnector/com.esri.wms.Esrimap"  //服务连接
          , {
          layers: 'street3', //包含层的ID,AXL文件里层的ID,用","分开
          format:OpenLayers.Util.alphaHack()?'image/gif':'image/png',   //图片格式     
          transparent:'true',  //是否透明,注意,IE只支持GIF透明,
          ServiceName: "test2",//wms服务名
          async: true,
          srs:'EPSG:4214'   //坐标系统,经纬度写EPSG:4326
          }
          ,{
          maxExtent:new OpenLayers.Bounds(489757.940,293425.5058,534205.948491573,326902.17035), //最大范围坐标
          projection:"EPSG:4214",
          isBaseLayer:true,
          singleTile:true,//是否瓦片图
          maxResolution: (534205.948491573-489757.940)/1024 //最大分辨率                  
          }
           );
      map.addLayer(layer);
      map.setCenter(new OpenLayers.LonLat(512950.10208490635, 312347.9883206317), 0);//第一个参数为坐标,第二个为缩放等级,0为顶级
  
Q. Opanlayers如何添加工具条toolbar
A.
 
  //关键代码
   zoomIn = new OpenLayers.Control.ZoomBox({title:'放大',displayClass:'olZoomIn'});
       zoomOut = new OpenLayers.Control.ZoomBox({out:true,title:'缩小',displayClass:'olZoomOut'});
       pan = new OpenLayers.Control.DragPan({title:'移动',displayClass:'olPan'});
       var panel = new OpenLayers.Control.Panel({defaultControl: pan});    //     defaultControl为默认工具 
       panel.addControls([zoomIn,zoomOut,pan]);
       map.addControl(panel);   //map为上例定义   
  
  
   与代码对应的CSS文件,displayClass与下面的对应,如displayClass:'olpan',那么按钮激活状态的
CSS类为.olPanItemActive,非激活状态为.olZoomOutItemInactive。工具条的DIV的Class
默认为:.olControlPanel,通过DIV+CSS定位工具条。以上工具条的CSS示例为:
  .olControlPanel div {
  display:block; 
  top: 0px;
  left: 190px;
  width:  360px;
  height: 26px;
  margin: 0px;
}
.olControlPanel .olZoomInItemInactive {
  width:  26px;
  height: 26px;
  float:left;
  position:relative;
  background-image: url("../SritGisScript/img/zoomin.gif");
}
.olControlPanel .olZoomInItemActive {
  width:  26px;
  height: 26px;
  float:left;
  position:relative;
  background-image: url("../SritGisScript/img/zoomin_1.gif");
}

.olControlPanel .olZoomOutItemInactive {
  width:  26px;
  height: 26px;
position:relative;
float:left;
  background-image: url("../SritGisScript/img/zoomout.gif");
}
.olControlPanel .olZoomOutItemActive {
  width:  26px;
  height: 26px;
  position:relative;
  float:left;
  background-image: url("../SritGisScript/img/zoomout_1.gif");
}

.olControlPanel .olPanItemInactive {
  width:  26px;
  height: 26px;
position:relative;
float:left;
  background-image: url("../SritGisScript/img/pan.gif");
}
.olControlPanel .olPanItemActive {
  width:  26px;
  height: 26px;
  position:relative;
  float:left;
  background-image: url("../SritGisScript/img/pan_1.gif");
}   

Q. Opanlayers如何添加测距功能
A.

  说明:本段代码是在  openlayers/examples/measure.html 基础上进行完善
  ===================================================
  CSS添加内容:
  .olControlPanel .olMeasureLineItemInactive {
  width:  26px;
  height: 26px;
position:relative;
float:left;
  background-image: url("img/measureline.gif");
}
.olControlPanel .olMeasureLineItemActive {
  width:  26px;
  height: 26px;
  position:relative;
  float:left;
  background-image: url("img/measureline_1.gif");
}

.olControlPanel .olMeasurePolygonItemInactive {
  width:  26px;
  height: 26px;
position:relative;
float:left;
  background-image: url("img/measurearea.gif");
}
.olControlPanel .olMeasurePolygonItemActive {
  width:  26px;
  height: 26px;
  position:relative;
  float:left;
  background-image: url("img/measurearea_1.gif");
}
     ======================================================================
javascript添加内容:
var sketchSymbolizers = {
                "Point": {
                    pointRadius: 4,
                    graphicName: "square",
                    fillColor: "white",
                    fillOpacity: 1,
                    strokeWidth: 1,
                    strokeOpacity: 1,
                    strokeColor: "#333333"
                },
                "Line": {
                    strokeWidth: 3,
                    strokeOpacity: 1,
                    strokeColor: "#666666",
                    strokeDashstyle: "dash"
                },
                "Polygon": {
                    strokeWidth: 2,
                    strokeOpacity: 1,
                    strokeColor: "#666666",
                    fillColor: "white",
                    fillOpacity: 0.3
                }
            };
           
            var style = new OpenLayers.Style();
            style.addRules([
                new OpenLayers.Rule({symbolizer: sketchSymbolizers})
            ]);
            var styleMap = new OpenLayers.StyleMap({"default": style});
           
            measureLine=new OpenLayers.Control.Measure(                       
                        OpenLayers.Handler.Path, {
                        title:'测距',
                        displayClass:'olMeasureLine',
                        persist: true,
                        handlerOptions: {
                            layerOptions: {styleMap: styleMap}
                        }
                    }
                );
          measureLine.events.on({
                    "measure": handleMeasurements    //测距功能回调方法
                });
               
               
            measurePolygon=new OpenLayers.Control.Measure(           
                    OpenLayers.Handler.Polygon, {
                    title:'测面积',
                    displayClass:'olMeasurePolygon',
                        persist: true,
                        handlerOptions: {
                            layerOptions: {styleMap: styleMap}
                        }
                    }
                );
             measurePolygon.events.on({             
                    "measurepartial": handleMeasurements  ////测面积功能回调方法
                });
               
             map.addControls([measureLine,measurePolygon]);
          ==================================================================  
          //回调方法,根据需要编写,本示例为在output的Div里输出
         function handleMeasurements(event) {
            var geometry = event.geometry;
            var units = event.units;
            var order = event.order;
            var measure = event.measure;
            var element = document.getElementById('output');
            var out = "";
            if(order == 1) {
                out += "measure: " + measure.toFixed(3) + " " + units;
            } else {
                out += "measure: " + measure.toFixed(3) + " " + units + "2";
            }
            element.innerHTML = out;
        }

    =====================================================================


         
 
 
分享到:
评论
1 楼 ljx0517 2010-03-17  
请问 openlayers 如何能定位坐标?
就是由用户输入个坐标
点击后就跳到相应地点
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    openLayers geoserver常见问题

    请问在openlayers中如何删除Layer中的marker 3 在层中加了一个标记怎么永久的存到地图上 3 OpenLayers 如何设死地图边界 3 谁写过openlayers解析xml 3 openlayer.popup 3 OpenLayers 怎么做字段标注 4 字段标注不是...

    openlayers很多特效demo

    openlayers很多特效demo openlayers很多特效demo openlayers很多特效demo

    OpenLayers

    OpenLayers OpenLayers Beginner's Guide

    openLayers的缩放级别

    OpenLayers缩放级别 OpenLayers 的缩放级别是指在不同比例尺或解析度下显示每个 layer 对象的引用, 即 ZoomLevels。OpenLayers 允许每个 layer 自定义自己的缩放级别,使之看起来合适。可以通过在构造函数中设置 ...

    openlayers中文.rar

    关于openlayers开发的一个中文手册,供大家学习。

    openlayers

    openlayers开发工具 openlayers api openlayers openlayers api 开发工具 支持多种地图加载展示

    webgis之openlayers全面解析pdf

    本书主要内容涵盖:WebGIS开发基础、OpenLayers开发基础、OpenLayers快速入门、OpenLayers之多源数据加载、OpenLayers之图形绘制、OpenLayers之OGC、OpenLayers之高级功能,*后给出了OpenLayers之项目实战――水利...

    openlayers3 热力图

    openlayers3 热力图

    openlayers 调用百度地图

    openlayers 调用百度地图

    openlayers 添加文字标注

    openlayers 实现在地图上添加文字标注。为图片注记添加文本标签

    openlayers资源v6.5.0.zip

    openlayers

    openlayers 态势箭头、进击箭头等

    openlayers 态势箭头、进击箭头等

    vue3+vite+openlayers6实现绘制扇形及环形组件代码

    在手写openlayers6 绘制扇形及环形源码的过程中会摘取openlayers中的核心逻辑,简化代码实现过程,保留核心功能,例如:vue3接入openlayers openlayers绘制环形 openlayers绘制扇形 适合人群:具备一定编程基础,...

    openlayers3添加闪烁点

    使用openlayers3实现动态点闪烁功能,结合canvas技术,加载到点到地图上

    vue+openlayers简单示例

    一个Vue与Openlayers结合的应用示例,以组件的方式在Vue中使用openlayers地图,以及可以进行简单的地图配置

    openlayers中文api.zip

    openLayers中文版api全翻译

    WebGIS之OpenLayers全面解析

    本书主要内容涵盖:WebGIS开发基础、OpenLayers开发基础、OpenLayers快速入门、OpenLayers之多源数据加载、OpenLayers之图形绘制、OpenLayers之OGC、OpenLayers之高级功能,最后给出了OpenLayers之项目实战——水利...

    OpenLayers JS文件下载

    OpenLayers 源文件,OpenLayers 源文件,OpenLayers 源文件,OpenLayers 源文件,OpenLayers 源文件,OpenLayers 源文件,OpenLayers 源文件,OpenLayers 源文件、

    openlayers中文文档2

    openlayers中文文档,openlayers中文文档api

    OpenLayers6.rar

    这个文件中包含了 Openlayers6.2.1 版本的部分功能示例代码,详细教程请参考文章:https://blog.csdn.net/Supreme_Sir/article/details/105123438

Global site tag (gtag.js) - Google Analytics