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;
}
=====================================================================
分享到:
相关推荐
请问在openlayers中如何删除Layer中的marker 3 在层中加了一个标记怎么永久的存到地图上 3 OpenLayers 如何设死地图边界 3 谁写过openlayers解析xml 3 openlayer.popup 3 OpenLayers 怎么做字段标注 4 字段标注不是...
openlayers很多特效demo openlayers很多特效demo openlayers很多特效demo
OpenLayers OpenLayers Beginner's Guide
OpenLayers缩放级别 OpenLayers 的缩放级别是指在不同比例尺或解析度下显示每个 layer 对象的引用, 即 ZoomLevels。OpenLayers 允许每个 layer 自定义自己的缩放级别,使之看起来合适。可以通过在构造函数中设置 ...
关于openlayers开发的一个中文手册,供大家学习。
openlayers开发工具 openlayers api openlayers openlayers api 开发工具 支持多种地图加载展示
本书主要内容涵盖:WebGIS开发基础、OpenLayers开发基础、OpenLayers快速入门、OpenLayers之多源数据加载、OpenLayers之图形绘制、OpenLayers之OGC、OpenLayers之高级功能,*后给出了OpenLayers之项目实战――水利...
openlayers3 热力图
openlayers 调用百度地图
openlayers 实现在地图上添加文字标注。为图片注记添加文本标签
openlayers
openlayers 态势箭头、进击箭头等
在手写openlayers6 绘制扇形及环形源码的过程中会摘取openlayers中的核心逻辑,简化代码实现过程,保留核心功能,例如:vue3接入openlayers openlayers绘制环形 openlayers绘制扇形 适合人群:具备一定编程基础,...
使用openlayers3实现动态点闪烁功能,结合canvas技术,加载到点到地图上
一个Vue与Openlayers结合的应用示例,以组件的方式在Vue中使用openlayers地图,以及可以进行简单的地图配置
openLayers中文版api全翻译
本书主要内容涵盖:WebGIS开发基础、OpenLayers开发基础、OpenLayers快速入门、OpenLayers之多源数据加载、OpenLayers之图形绘制、OpenLayers之OGC、OpenLayers之高级功能,最后给出了OpenLayers之项目实战——水利...
OpenLayers 源文件,OpenLayers 源文件,OpenLayers 源文件,OpenLayers 源文件,OpenLayers 源文件,OpenLayers 源文件,OpenLayers 源文件,OpenLayers 源文件、
openlayers中文文档,openlayers中文文档api
这个文件中包含了 Openlayers6.2.1 版本的部分功能示例代码,详细教程请参考文章:https://blog.csdn.net/Supreme_Sir/article/details/105123438