刚开始接触openlayers的时候感觉GIS地图太难,压力太大,差点就要放弃这个了,后来随着慢慢的熟悉,感觉用起来确实也挺方便的。当然得感谢网上很多的前辈分享的经验。下面我来结合我自己的实际情况来讲讲openlayers的简单的功能的实现:
1.去官网下载OpenLayers,下载地址:http://openlayers.org/
有用到geoserver的可以去网上找找资料看看,我这里因为业务需求简单,就直接用的本地图片了,没有用geoserver。
下载之后解压,将img、lib、theme、OpenLayers.js这几个目录和文件拷贝到你的项目路径下。最好都放在一个路径下面。
2.在页面引入OpenLayers.js
<script type="text/javascript" src="OpenLayers.js"></script>
3.写js方法,创建地图:
var map = null; function init(){ <!-- create map --> var options={ controls:[new OpenLayers.Control.KeyboardDefaults()] };//添加键盘控制的控件 map = new OpenLayers.Map('map',options);//创建地图对象map,这里的map是用来显示的div的id var bounds = new OpenLayers.Bounds();//设置边界 bounds.extend(new OpenLayers.LonLat(0,0));//扩展边界 bounds.extend(new OpenLayers.LonLat(500,500)); bounds.toBBOX(); var size = new OpenLayers.Size(400,400); var wms = new OpenLayers.Layer.Image('b','img/maptest.jpg',bounds,size);//创建image类型的图层 map.addLayer(wms);//将图层添加到地图里面 map.setBaseLayer(wms);//设置图层为基层 map.zoomToMaxExtent(); <!-- add mapControl tools -->//下面几个事添加map控件的,根据自己需要添加 map.addControl(new OpenLayers.Control.PanZoomBar({ position:new OpenLayers.Pixel(2,15) })); map.addControl(new OpenLayers.Control.ScaleLine()); map.addControl(new OpenLayers.Control.OverviewMap()); map.addControl(new OpenLayers.Control.Navigation());
好了,接下来就是显示地图啦,注意:上面代码中可以看出图片的路径和格式,这个可以根据需要更换。
<body onload="init()"> <div id="map" style="width:500px;height:500px;"></div> </body>
然后可以运行一下,就可以看到地图啦:
好啦,地图可以创建啦,接下来就是给地图创建标注点啦:
还是再init()方法里面:
markers = new OpenLayers.Layer.Markers("Hello"); var lonlat = new OpenLayers.LonLat(x,y);//x、y为标注点的坐标,自己指定 markers = autoAddMarker(lonlat); map.addLayer(markers); }//init()结束 function getIcon(){ var size = new OpenLayers.Size(21,25); var offset = new OpenLayers.Pixel(-(size.w/2),-size.h); var icon = new OpenLayers.Icon('img/marker.png',size,offset); return icon; } function autoAddMarker(lonlat){ var marker = new OpenLayers.Marker(lonlat,getIcon()); marker.events.register("click", marker, function(evt){ alert("Hello"); }); markers.addMarker(marker); return markers; }
这样就可以在指定的坐标点产生标注图标了。
接下来你可能还会用到给地图添加文字标注,下面我们就一起来看看怎么添加文本标注吧:
还是再init()方法里面:
var style = new OpenLayers.Style({ label:"${type}", fontColor:"#289E08", fontFamily:"sans-serif", fontWeight:"bold", fontSize:30 });//这个style是文本标注图层的style,在这里可以设置文本标注的各种属性 var point = new OpenLayers.Geometry.Point(126,262);//创建文本标注的坐标点 vectorLayer = new OpenLayers.Layer.Vector("labelLayer",{ styleMap:new OpenLayers.StyleMap(style) });//创建一个文本标注的图层,一个图层上可以有多个标注 var feature = new OpenLayers.Feature.Vector(point);//这一步才是创建文本标注 feature.attributes={ type:"Hello" };//设置文本标注的内容 var feature = [feature];//因为addFeatures()的参数是数组,所以这里把feature放到数组里面 map.addLayer(vectorLayer);//将文本标注图层添加到map里面 vectorLayer.addFeatures(feature);//将该文本标注添加到文本标注图层上面
接下来给我做的完整的小例子给大家,希望可以帮到跟我一样刚接触OpenLayers的同学来学习。
<html> <head> <title>Text</title> <script type="text/javascript" src="OpenLayers.js"></script> <script type="text/javascript"> var map = null; var markers = null; var vectorLayer=null; function init(){ <!-- create map --> var options={ controls:[new OpenLayers.Control.KeyboardDefaults()] }; map = new OpenLayers.Map('map',options); var bounds = new OpenLayers.Bounds(); bounds.extend(new OpenLayers.LonLat(0,0)); bounds.extend(new OpenLayers.LonLat(500,500)); bounds.toBBOX(); var size = new OpenLayers.Size(400,400); var wms = new OpenLayers.Layer.Image('b','img/maptest.jpg',bounds,size); map.addLayer(wms); map.setBaseLayer(wms); map.zoomToMaxExtent(); <!-- add mapControl tools --> map.addControl(new OpenLayers.Control.PanZoomBar({ position:new OpenLayers.Pixel(2,15) })); map.addControl(new OpenLayers.Control.ScaleLine()); map.addControl(new OpenLayers.Control.OverviewMap()); map.addControl(new OpenLayers.Control.Navigation()); <!-- create textLayers --> var style = new OpenLayers.Style({ label:"${type}", fontColor:"#289E08", fontFamily:"sans-serif", fontWeight:"bold", fontSize:30 }); var point = new OpenLayers.Geometry.Point(126,262); vectorLayer = new OpenLayers.Layer.Vector("labelLayer",{ styleMap:new OpenLayers.StyleMap(style) }); var feature = new OpenLayers.Feature.Vector(point); feature.attributes={ type:"Hello", fontColor:"#7C99E2" }; var feature = [feature]; map.addLayer(vectorLayer); vectorLayer.addFeatures(feature); <!-- create markerLayers --> markers = new OpenLayers.Layer.Markers("Hello"); var lls = [[112,252],[86,34],[150,350],[100,200],[450,300]]; for(var i=0;i<lls.length;i++){ var arr = lls[i]; var lonlat = new OpenLayers.LonLat(arr[0],arr[1]); markers = autoAddMarker(lonlat,i); } map.addLayer(markers); } function getIcon(){ var size = new OpenLayers.Size(21,25); var offset = new OpenLayers.Pixel(-(size.w/2),-size.h); var icon = new OpenLayers.Icon('img/marker.png',size,offset); return icon; } function autoAddMarker(lonlat,i){ var marker = new OpenLayers.Marker(lonlat,getIcon()); marker.events.register("click", marker, function(evt){ evt = getEvt(i); window.location.href=evt+".html"; }); markers.addMarker(marker); return markers; } function getEvt(i){ var evt=null; if(i==0){ evt="Test2"; }else if(i==1){ evt="Test3"; }else if(i==2){ evt="Test4"; }else if(i==3){ evt="Test5"; }else if(i==4){ evt="Test6"; } return evt; } </script> </head> <body onload="init()"> <div id="map" style="width:500px;height:500px;"></div> </body> </html>
好了,到此为止!贴别要感谢那些在网上分享学习经验的前辈们,正是你们的分享才让我们这些后来的学习者更快的学习。谢谢!
相关推荐
在"geoServer+openLayers简单小例子"中,OpenLayers被用来调用通过GeoServer发布的地图数据。这通常涉及到以下几个步骤: 1. **配置GeoServer**:首先,你需要在本地安装GeoServer并配置它来发布你的地图数据。这...
"OpenLayers典型例子展示" OpenLayers是一款基于Web的GIS(Geographic Information System)映射库,提供了强大的地图展示和交互功能。下面我们将通过一些典型例子,展示OpenLayers的强大功能和多样化的应用场景。 ...
在这个"openlayers3画线功能例子"中,我们将深入探讨如何利用OpenLayers 3来实现地图上的线条绘制,包括直线和扇形图。 首先,要实现画线功能,我们需要在HTML文件中引入OpenLayers库的CDN链接或者本地文件。接着,...
在“使用openlayers加载离线地图实例”中,我们需要考虑以下关键步骤: 1. **设置HTML结构**:首先,创建一个HTML文件作为应用的基础,引入OpenLayers库和其他必要的CSS和JavaScript资源。确保OpenLayers库的路径...
OpenLayers 是由MetaCarta公司开发的,用于WebGIS客户端的 JavaScript包,目前的最高版本是2.5 V,通过BSD License 发行。它实现访问地理空间数据的方法都符合行业标准,比如 OpenGIS的WMS和WFS规范, OpenLayers...
OpenLayers 是一个强大的开源JavaScript库,用于在网页上创建交互式的地图应用。它支持多种地图服务,包括WMS、WMTS等,并提供了丰富的功能,如图层管理、标记、弹窗、编辑工具等。以下是一些OpenLayers的经典实例...
在"map map openlayers例子"中,我们主要探讨的是如何使用OpenLayers创建和操作地图。首先,我们需要引入OpenLayers库的JavaScript文件。通常,这可以通过CDN链接或者本地文件引用完成。例如: ```html ...
"openlayers使用笔记1 从例子开始学习openlayers - Java&GIS - BlogJava.url"是一篇从实践出发的学习笔记,适合初学者。它可能通过一系列实例,逐步引导读者理解OpenLayers的基本操作,如添加图层、设置地图中心点、...
使用上面的`baiduSource`创建一个OpenLayers图层: ```javascript var baiduLayer = new ol.layer.Image({ source: baiduSource }); ``` 6. **设置地图和视图**: 创建`ol.Map`实例,并设置视图的中心点和...
本资源主要针对初级学习者,介绍如何使用OpenLayers对GeoServer图层进行编辑。 首先,让我们了解OpenLayers。OpenLayers提供了一个灵活的API,用于创建交互式的地图应用。它可以加载多种地图源,包括WMS(Web Map ...
这需要使用OpenLayers的动画功能和定时器。在每个时间步长,更新地图的视图以移动到下一个轨迹点。 至此,我们就成功地用OpenLayers展示了对象的移动轨迹。这个过程涉及到地图的初始化、数据加载、图层创建、样式...
OpenLayers的例子通常包括基本地图加载、图层管理、标记添加、弹窗显示等,可以通过官方文档找到许多示例代码进行学习。 关于TileCache函数,如getTilesUrl(),用于返回对应坐标范围的瓦片URL,是TileCache服务的...
### Openlayers经典例子知识点概述 #### 一、Popup(弹出窗口) 在Web地图应用中,弹出窗口常被用于展示特定地理位置上的信息。通过OpenLayers提供的`Popup`功能,开发者能够轻松地在地图上添加交互式的弹出窗口。...
使用说明 在加载ol3toolkit.js前先加载js文件夹里的其他引用包和css,然后在script中简单设置OL3ToolkitOptions对象即可。如 > var OL3ToolkitOptions = {zoomLevel: 10, viewCenter:[120,30]}; 具体实例请参照...
- **瓦片(Tiles)**:OpenLayers可以使用瓦片服务来提高地图加载速度,将大地图分割成小块加载。 2. **OpenLayers的使用步骤**: - **引入库文件**:在HTML文件中添加OpenLayers库的链接。 - **创建Map对象**:...
### OpenLayers 3 示例中文解析 #### 1. 局部化OpenStreetMap与不同层级显示地图 - **知识点:** - **OpenStreetMap**:一个免费且开放的地图项目,用户可以贡献地理数据。 - **地图层级控制**:通过调整地图的...
4. **例子(Examples)**:压缩包中的"examples"目录包含了各种示例代码,展示如何使用OpenLayers创建不同类型的地图应用。这些实例是学习和理解库功能的好资源,涵盖了从基本的地图加载到复杂交互的各种场景。 5. ...
关于OpenLayers一周研究成果,内有OpenLayers2.13、OpenLayers3的源码以及加载百度谷歌地图的源码,如何定位,如何画线,生成多边形等源码,以及OpenLayers2.13的中文接口文档。OpenLayers基础教程。
在这个入门程序中,开发者可能会学习到如何在ASP.NET MVC控制器中处理地图相关的请求,如何生成JSON或WKT响应,以及如何在视图中使用JavaScript和OpenLayers API来显示和操作地图。同时,他们还需要了解如何配置和...