收藏 分销(赏)

OpenLayers地图重点属性摘录.docx

上传人:仙人****88 文档编号:8920934 上传时间:2025-03-08 格式:DOCX 页数:15 大小:52.68KB 下载积分:10 金币
下载 相关 举报
OpenLayers地图重点属性摘录.docx_第1页
第1页 / 共15页
OpenLayers地图重点属性摘录.docx_第2页
第2页 / 共15页


点击查看更多>>
资源描述
一:OpenLayers 1. OpenLayers:常量 version_number标识版本 二:BaseTypes 2. BaseTypes(基本类型):这里定制了Openlayers中用到的string、number、function、array 3. Bounds(边界): 属性 left、bottom、right、top、centerLonLat 方法 extend 用于扩展边界,toBBox用于绑定 bounds = new OpenLayers.Bounds(); bounds.extend(new OpenLayers.LonLat(4,5)); bounds.extend(new OpenLayers.LonLat(5,6)); bounds.toBBOX(); // returns 4,5,5,6 4. LonLat(经纬度): 属性 lon经度、lat纬度 注意:如果地图不是地理投影,那么调用的LonLat表示的是地图上的x、y轴坐标,为(0,0)表示坐标轴原点 例子:map.setCenter(new OpenLayers.LonLat(116.3876,39.8983),13); 最后一个参数表示Zoom:放大倍数 5. Pixel(像素):属性 x、y表示x和y坐标 6. Size:属性 w、h表示宽和高 三:Console 7. Console:用于调试和把错误等输出到“控制台”上,需要结合使用firebug 四:Control 8. Control(控件): 使用方法: 方法一: var map = new OpenLayers.Map('map', { controls: [] }); map.addControl(new OpenLayers.Control.PanZoomBar()); 方法二: var map = new OpenLayers.Map('map', { controls: [new OpenLayers.Control.PanZoomBar(), new OpenLayers.Control.Navigation()] }); 9. Button(按钮):方法 trigger() 点击按钮的时候会调用 使用方法:var button = new OpenLayers.Control.Button({     displayClass: "MyButton", trigger: myFunction }); panel.addControls([button]); 10. DragPan(鼠标拖动地图) 11. DrawFeature(在矢量图上画点、线、面) var lines = new OpenLayers.Layer.Vector("Lines", { styleMap: new OpenLayers.StyleMap({ pointRadius: 3, strokeColor: "#ff3300", strokeWidth: 3, fillOpacity: 0 }) }); var panel = new OpenLayers.Control.Panel({ displayClass: "olControlEditingToolbar" }); var draw = new OpenLayers.Control.DrawFeature( lines, OpenLayers.Handler.Path, {displayClass: "olControlDrawFeaturePath", title: "Draw Lines"} ); panel.addControls([ new OpenLayers.Control.Navigation({title: "Navigate"}), draw ]); map.addControl(panel); 12. EditingToolbar(编辑工具条) EditingToolbar包含4个控件:draw point、draw lines、draw polygon、pan navigation 构造函数 参数:layer(Openlayer.Layer.Vector)、options 例子: var vector = new OpenLayers.Layer.Vector("Editable Vectors"); map.addLayers([vector]); map.addControl(new OpenLayers.Control.EditingToolbar(vector)); 13. Geolocate(地理定位)把w3c geolocation API包装成控件,与地图绑定,位置发生变化时触发事件 14. GetFeature 15. Graticule(格子线)在地图上以grid显示经纬线 16. KeyboardDefaults:增加了用键盘实现平移缩放功能 map.addControl(new OpenLayers.Control.KeyboardDefaults()); 17. LayerSwitcher(图层切换功能) map.addControl(new OpenLayers.Control.LayerSwitcher()); 18. Measure(用于测量绘图):方法 getArea和getLength 19. MousePosition(鼠标位置):显示鼠标指针移动时的地理坐标 map.addControl(new OpenLayers.Control.MousePosition()); 20. MouseToolbar(鼠标工具栏):有拉框放大的功能,但是需要按住shift键,所以不推荐使用,要实现相同的功能可以使用NavToolbar 21. Navigation(导航):导航控件处理鼠标事件(拖动、双击、滚动)的地图浏览 注意:这个控件是默认添加到地图中的 22. NavToolbar:加入了两个mousedefaults控件,通过使用zoomBox实现拉框放大功能 map.addControl(new OpenLayers.Control.NavToolbar()); 23. OverviewMap(鹰眼):默认在地图的右下角 map.addControl(new OpenLayers.Control.OverviewMap()); 24. Pan(平移) 25. Panel(面板):Panel控件是其他控件的容器 Each control in the panel is represented by an icon,即表示添加到面板里面的控件都是用图像表示的 26. PanZoom(平移缩放):由OpenLayers.Control.PanPanel和OpenLayers.Control.PanPanel这两个控件组成,具有平移和缩放的功能 图标: map.addControl(new OpenLayers.Control.PanZoom()); 27. PanZoomBar(平移缩放工具栏): 由OpenLayers.Control.PanPanel和OpenLayers.Control.ZoomBar这两个控件组成,具有平移和缩放功能,这控件和PanZoom的区别见图标 图标: map.addControl(new OpenLayers.Control.PanZoomBar()); 28.  Permalink(永久链接):点击永久链接将用户返回到当前地图视图 例子:map.addControl(new OpenLayers.Control.Permalink()); 29. Scale(比例尺):以1:1这种比率样式显示当前地图的比例 例子:map.addControl(new OpenLayers.Control.Scale()); 30. ScaleLine(比例尺):以线段指标的样式显示当前地图的比例 例子:map.addControl(new OpenLayers.Control.ScaleLine()); 31. SelectFeature 通过点击或是悬停选择给定层上的Feature 构造函数 参数:layer(Openlayers.Layer.Vector)、options 属性:multipleKey toggleKey multiple:是否允许同时选择多个图形 clickout:取消功能,当点击图形外的任何东西,取消对图形的选择 hover:鼠标悬停 例子: selectControl = new OpenLayers.Control.SelectFeature( [vectors1, vectors2], { clickout: true, toggle: false, multiple: false, hover: false, toggleKey: "ctrlKey", // ctrl key removes from selection multipleKey: "shiftKey" // shift key adds to selection } ); map.addControl(selectControl); selectControl.activate(); 32. SLDSelect 33. Snapping(编辑矢量图层时用于捕捉) 34. Split 35. TouchNavigation(触摸导航):只针对触摸功能的设备的地图绘制应用程序 36. TransformFeature 37. WMSGetFeatureInfo:使用WMS的查询来获取地图上一个点的信息,显示的格式是Format的 38. WMTSGetFeatureInfo:使用WMTS的查询来获取地图上一个点的信息,显示的格式是Format的 39. Z oomBox(拉框放大的功能):与NavToolbar同样,属性 out 可以实现拉框缩小(这个控件没有实现) Q:在界面中使用map.addControl(new OpenLayers.Control.ZoomBox({alwaysZoom:true}));并不能实现将拉框控件添加到地图中? 使用创建新类的方法 下面这段代码中调用的this是哪一层?controls[0]是哪个控件? OpenLayers.Control.CustomNavToolbar = OpenLayers.Class(OpenLayers.Control.Panel, { initialize: function(options) { OpenLayers.Control.Panel.prototype.initialize.apply(this, [options]); this.addControls([ new OpenLayers.Control.ZoomBox({alwaysZoom:true}) ]); //this.displayClass = 'olControlNavToolbar' }, draw: function() { var div = OpenLayers.Control.Panel.prototype.draw.apply(this, arguments); this.defaultControl = this.controls[0]; return div; } }); map.addControl(new OpenLayers.Control.CustomNavToolbar()); 40. ZoomIn 放大 使用的时候可以通过PanZoomBar控件,ZoomIn每次放大一个级别 41. ZoomOut 缩小 使用的时候可以通过PanZoomBar控件,ZoomOut每次缩小一个级别 42. ZoomPanel 包括OpenLayers.Control.ZoomIn和OpenLayers.Control.ZoomToMaxExtent和OpenLayers.Control.ZoomOut 图标 map.addControl(new OpenLayers.Control.ZoomPanel()); 43. ZoomToMaxExtent 显示地图的最大程度的缩小 五:Map 44. Map (地图) 见资料 构造函数 参数:div(页面中要显示的标签)、options 属性: allOverlays:?3 maxExtent:地图的最大范围 units:地图的单位 projection:覆盖默认的投影字符串地图,如果适当,最好还设置maxExtent、maxResolution、units maxResolution:最大分辨率 numZoomLevels:缩放级别数目 知道最大分辨率和缩放级别数目可以直接知道最小和最大的缩放级别 displayProjection:显示的投影级别,与mouseposition控件结合使用,即设置mouseposition显示使用的坐标系 // create a map with default options in an element with the id "map1" var map = new OpenLayers.Map("map1"); // create a map with non-default options in an element with id "map2" var options = {     maxExtent: new OpenLayers.Bounds(-200000, -200000, 200000, 200000),//最大显示范围     maxResolution: 156543,//最大分辨率     units: 'm',//     projection: "EPSG:41001" }; var map = new OpenLayers.Map("map2", options); // map with non-default options - same as above but with a single argument var map = new OpenLayers.Map({     div: "map_id",     maxExtent: new OpenLayers.Bounds(-200000, -200000, 200000, 200000),     maxResolution: 156543,     units: 'm',     projection: "EPSG:41001" }); // create a map without a reference to a container - call render later var map = new OpenLayers.Map({     maxExtent: new OpenLayers.Bounds(-200000, -200000, 200000, 200000),     maxResolution: 156543,     units: 'm',     projection: "EPSG:41001" }); 六:Marker 45. Marker 包括一个OpenLayers.LonLat和OpenLayers,Icon,注意:标记一般都是添加到一个特殊的图层,即OpenLayers.Layer.Markers 使用方法: 方法一: var markers = new OpenLayers.Layer.Markers( "Markers" ); map.addLayer(markers); var size = new OpenLayers.Size(21,25); var offset = new OpenLayers.Pixel(-(size.w/2), -size.h); var icon = new OpenLayers.Icon('http://www.openlayers.org/dev/img/marker.png', size, offset); markers.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(0,0),icon)); markers.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(0,0),icon.clone())); 方法二: var markers = new OpenLayers.Layer.Markers( "Markers" ); map.addLayer(markers); markers.addMarker(new OpenLayers.Marker(new OpenLayers.LonLat(0,0),new OpenLayers.Icon('http://www.openlayers.org/dev/img/marker.png'))); 注意:标记不能使用同样的图标,但是可以使用clone()方法实现对图标的克隆 46. Box 用矩形做标记,同样box要添加到Boxes这个图层里面 Q:下面这个程序为什么没有效果? var boxes = new OpenLayers.Layer.Boxes( "Boxes" ); map.addLayer(boxes); var bounds = new OpenLayers.Bounds(-10,50,5,60); var box = new OpenLayers.Marker.Box(bounds); //box.events.register("click", box, function (e) { // this.setBorder("yellow"); // }); boxes.addMarker(box); 七:Popup 47. Popup 构造函数参数有六个:ID、lonlat、contentSize、contentHTML、closeBox、closeBoxCallback popup = new OpenLayers.Popup("chicken",//标识符 new OpenLayers.LonLat(5,40),//在地图上的弹出位置 new OpenLayers.Size(200,200),//弹出的提示框的大小 "example popup",//提示框中显示的内容 true);//是否显示关闭框 map.addPopup(popup); 通过使用下面的方法,可以在标记中添加点击事件,点击时弹出提示框 marker.events.register("click", marker, function (e) { map.addPopup(popup); popup.show();//如果不加这个方法,popup只有在第一次点击marker的时候才会出现,之后点击都没有效果 }); 48. FramedCloud 继承Popup,弹出的形状与Popup是不一样的 framedcloud = new OpenLayers.Popup.FramedCloud("chicken",//标识符 new OpenLayers.LonLat(5,40),//在地图上的弹出位置 new OpenLayers.Size(200,200),//弹出的提示框的大小 "example popup",//提示框中显示的内容 null, true);//是否显示关闭框 map.addPopup(framedcloud); 49. Anchored 50. AnchoredBubble 八:Icon 51. Icon (图标) 重要属性:url图片源、size图片大小、offset偏移量 图标一般与marker结合使用 Q:能不能将图标与其他控件结合?能! var size = new OpenLayers.Size(21,25);//用来控制图标的大小 var offset = new OpenLayers.Pixel(-(size.w/2), -size.h);//用来控制图标的偏移量 var icon = new OpenLayers.Icon('http://www.openlayers.org/dev/img/marker.png', size, offset);//定义图标 九:Layer 52. Layer (图层)..\openlayers\openlayers的类与方法.doc 53. ArcGIS93Rest 使用ESRI的ArcGIS Server 9.3地图服务中显示的数据 54. ArcIMS 使用ESRI公司的ArcIMS地图服务中显示的数据 55. Bing 使用ESRI的Bing地图 56. Boxes 为box提供图层 方法:drawMarker、removeMarker 57. GeoRSS 添加GeoRSS点功能 58. GML 通过解析GML文件创建一个适量图层 注意:过时,在3.0中被移除 59. Google 构造函数中的参数:name显示的名称、options 例子: var ghyb = new OpenLayers.Layer.Google( "Google Hybrid", {type: G_HYBRID_MAP, sphericalMercator: true} ); 60. Grid 使用瓷砖晶格 层的基类 61. VirtureEarth 例子: var veroad = new OpenLayers.Layer.VirtualEarth( "Virtual Earth Roads", {'type': VEMapStyle.Road, sphericalMercator: true} ); var veaer = new OpenLayers.Layer.VirtualEarth( "Virtual Earth Aerial", {'type': VEMapStyle.Aerial, sphericalMercator: true} ); var vehyb = new OpenLayers.Layer.VirtualEarth( "Virtual Earth Hybrid", {'type': VEMapStyle.Hybrid, sphericalMercator: true} ); 62. Yahoo 例子: var yahoo = new OpenLayers.Layer.Yahoo( "Yahoo Street", {sphericalMercator: true} ); var yahoosat = new OpenLayers.Layer.Yahoo( "Yahoo Satellite", {'type': YAHOO_MAP_SAT, sphericalMercator: true} ); var yahoohyb = new OpenLayers.Layer.Yahoo( "Yahoo Hybrid", {'type': YAHOO_MAP_HYB, sphericalMercator: true} ); 63. WMS OpenLayers.Layer.WMS实例是用来显示OGC Web地图服务的数据。 构造函数的参数:name(显示的名称)、url(来源)、params、options 例子: var wms = new OpenLayers.Layer.WMS( "NASA Global Mosaic", "http://wms.jpl.nasa.gov/wms.cgi", {layers: "modis,global_mosaic"} ); var wms = new OpenLayers.Layer.WMS( "OpenLayers WMS", "http://vmap0.tiles.osgeo.org/wms/vmap0?", {layers: 'basic'} ); 十:StyleMap 64. StyleMap 构造函数 参数:style、options Style表示写入渲染方法( “default”, “temporary”, “select”, “delete”) 例子:  var styles = new OpenLayers.StyleMap({ "default": {strokeWidth: 2}, "select": {strokeColor: "#0099cc",strokeWidth: 4} }); 方法 addUniqueValueRules 用于向指定渲染方法中的样式对象添加规则 参数 renderIntent 要添加规则的渲染方法 property 给哪个属性创建规则 symbolizers context 例子: styles.addUniqueValueRules("default", "RP_TYPE", { 10: {strokeColor: "#000000", strokeWidth: 2}, 12: {strokeColor: "#222222", strokeWidth: 2}, 14: {strokeColor: "#444444", strokeWidth: 2}, 16: {strokeColor: "#666666", strokeWidth: 2}, 18: {strokeColor: "#888888", strokeWidth: 2}, 19: {strokeColor: "#666666", strokeWidth: 1} }); 定义出现在地图界面上的点线面的样式,添加到地图图层中,如果在地图上画点、线、面时则按照定义的样式显示 方法一: 1 2 3 4 Symbolizer----Rule----Style----StyleMap----Vector 1. New Rule ({Symbolizer }) 2. Style.addRules(Rule) 3. New StyleMap({Style}) 4. New Vector({styleMap:StyleMap}) 或者是 New style({},{rules:new Rule({symbolizer})}) 只是提供一种方式,写法还有很多种格式 例子: //定义点线面的样式,然后通过style和rule增加到measure控件中 var sketchSymbolizers = { "Point": { pointRadius: 2, graphicName: "square", fillColor: "white", fillOpacity: 1, strokeWidth: 1, strokeOpacity: 1, strokeColor: "#333333" }, "Line": { strokeWidth: 2, strokeOpacity: 1, strokeColor: "#ff0000", //strokeDashstyle: "dash" }, "Polygon": { strokeWidth: 2, strokeOpacity: 1, strokeColor: "#ff0000", fillColor: "white", fillOpacity: 0.3 } }; var style = new OpenLayers.Style();//定义风格,样式 style.addRules([ new OpenLayers.Rule({symbolizer: sketchSymbolizers})//增加规则,支持(点、线、面)这三个是键 ]); var styleMap = new OpenLayers.StyleMap({"default": style}); ............. var lines = new OpenLayers.Layer.Vector("Lines", { styleMap: styleMap }); var polygons = new OpenLayers.Layer.Vector("Polygons",{ styleMap:styleMap }); map.addLayers([lines,polygons]); 方法二: 1 StyleMap----Vector 1. new StyleMap() 2. StyleMap.addUniqueValueRules 3. New Vector({styleMap:StyleMap}) 例子: // give the features some style var styles = new OpenLayers.StyleMap({ "default": { strokeWidth: 2 }, "select": { strokeColor: "#0099cc", strokeWidth: 4 } }); // add rules from the above lookup table styles.addUniqueValueRules("default", "RP_TYPE", { 10: {strokeColor: "#000000", strokeWidth: 2}, 12: {strokeColor: "#222222", strokeWidth: 2}, 14: {strokeColor: "#444444", strokeWidth: 2}, 16: {strokeColor: "#666666", strokeWidth: 2}, 18: {strokeColor: "#888888", strokeWidth: 2}, 19: {strokeColor: "#666666", strokeWidth: 1} }); var vectors = new OpenLayers.Layer.Vector("Lines", { strategies: [new OpenLayers.Strategy.Fixed()], //战略 protocol: new OpenLayers.Protocol.
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服