Openlayers API-XYZ

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Openlayers API-XYZ相关的知识,希望对你有一定的参考价值。

参考技术A ol/source/XYZ 用于图层加载 XYZ 数据格式的切片。通常是按钮规格来获取切片,比如当 X 和 Y 都为0时,表示左上角的切片。加载切图的时候也是根据当前切片所处的位置来动态设置 X``Y``Z 的值,一般是直接在 url 中拼接。如 https://a-c.tile.thunderforest.com/cycle/z/x/y.png' ,也可以使用函数来指定,如

使用 XYZ 数据源也比较简单,只需创建一个 XYZ 的对象,然后在创建切片图层的时候,将数据源指向 XYZ 对象就可以了,如下所示:

openlayers 初步认识(转)

OpenLayers是一个开源的js框架,用于在您的浏览器中实现地图浏览的效果和基本的zoom,pan等功能。OpenLayers支持的地图来源 包括了WMS,GoogleMap,KaMap,MSVirtualEarth等等,您也可以用简单的图片作为源,在这一方面OPenLayers提供了 非常多的选择。 

要使用OpenLayers,您可以到它的官方网站http://www.openlayers.org下载他的压缩包,解压后可以看到其中的一些目录和 文件。拷贝dist目录下的OpenLayer.js、根目录下的lib目录、根目录下的img目录到你网站的scripts目录下(当然,这个只是例 子,您网站的目录结构您自己说得算,只要保证OpenLayers.js,/lib,/img在同一目录中即可)。 

接下来创建一个index.html作为查看地图的页面。导入OpenLayers.js和你将要创建的js。内容需要一个div,我们给它的id起名叫做area。你有必要在写一些CSS限定#area的宽度和高度,如果乐意,加上一个border也是很不错的选择。 

废话不多说,我们首先要创建一个OpenLayer.Map对象的实例: 
var map = new OpenLayers.Map("area"); 
其中的参数可以传id,也可以传ElementObject,当然id更加方便一些。 

接下来就是向地图中添加图层,通常情况下使用OpenLayers.Layer的子类来完成图层的初始化。 
OpenLayers提供了一下Layers的扩展: 

* OpenLayers.Layer.Image (影像)
* OpenLayers.Layer.HTTPRequest 
* OpenLayers.Layer.Grid 
* OpenLayers.Layer.WMS (wms服务)
* OpenLayers.Layer.KaMap 
* OpenLayers.Layer.EventPane 
* OpenLayers.Layer.Google 
* OpenLayers.Layer.VirtualEarth 
* OpenLayers.Layer.Markers (图层标记)
* OpenLayers.Layer.Text 
* OpenLayers.Layer.GeoRSS 
* OpenLayers.Layer.Boxes 
* OpenLayers.Layer.TMS 

1、Image类封装一个实际图象作为图层内容 
HTTPRequest类可以接收一个动态生成的图片,你可以通过HTTPRequest类的参数向服务器发送参数 
2、Grid类是HTTPRequest类的子类,提供更加详细的方法 
3、WMS类用于连接WMS服务器以获得图象 
4、KaMap类用于连接MapServer 
5、EventPane类作为用于接收用户操作的图层 
6、Google类用于从Google获得图象,它仍然需要你从Google获得API KEY,并且include 

7、VirtualEarth类用于操作VirtualEarth的图层 

8、Markers类用于生成接收和显示用户本地标记的图层 

9、Text类用于接收CSV文件 

10、GeoRSS类是Marker类的子类,用于封装接收GeoRSS并在图层中作出marker /

11、Boxes同样也是Marker类的子类,可以用div来做marker,而非image 

12、TMS用于接收TMS服务器的地图 

创建完图层后,可以用Map的addLayer(layer)方法插入,并执行Map的zoomToMaxExtent()方法让地图合适地显示。 

OpenLayers还提供了丰富的Control类为地图浏览添加一些工具,继承自OpenLayers.Control类 

* OpenLayers.Control.LayerSwitcher 
* OpenLayers.Control.MouseDefaults 
* OpenLayers.Control.MousePosition 
* OpenLayers.Control.MouseToolbar 
* OpenLayers.Control.OverviewMap 
* OpenLayers.Control.PanZoom 
* OpenLayers.Control.PanZoomBar 
* OpenLayers.Control.Permalink 
* OpenLayers.Control.Scale 

这些类的实例会在地图浏览的“窗口”上增加一些工具栏或是“按钮”,增加互动性和功能性。 

OpenLayers对常用的数据结构进行了封装 
# OpenLayers.LonLat 
# OpenLayers.Size 
# OpenLayers.Pixel 
# OpenLayers.Bounds以便于操作。 

此外OpenLayers.Util类可以对图片载入错误时图片框的颜色和图片框中默认的图片进行自定义,这一点是非常方便的。OpenLayers的Ajax类对创建XHR对象的过程进行了封装,可以使用它进行简单的Ajax操作。

以上是关于Openlayers API-XYZ的主要内容,如果未能解决你的问题,请参考以下文章

关于openlayers的问题

openlayers6 mapserver加载地图底图

openlayers绘制多边形

openlayers 接百度地图,有没有接好的,位置也对的,求助

openlayers添加标注(含聚合标注)、覆盖物、绘制路线

在openlayers中,如何在输入地名之后,在地图的对应的位置就标记出来呢?该怎么实现?