OpenLayers的API讲解(一)
目录
API系列的内容主要是一系列主要常用的组件,Map,View,Layers,Controls,Interactions,Source and formats,Projections,Observable object 和 other components。
Map
Map是由Layers组成,用View来展示,Interactions用来修改地图内容和控制UI组件。
一、概述
ol.Map
map是OpenLayers的核心组件。map对于渲染,展示,一个或者更多的图层和目标容器都是必要的。
<div id="map" class="map></div>
<script type="text/javascript">
var map = new ol.Map({
view: new ol.View({
center: [0, 0],
zoom: 1
}),
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
})
],
target: 'map'
});
</script>
上面的小片段创建了一个小地图,用ol.layer.Tile
来展示ol.source.OSM
的OSM数据,通过节点map
在DOM元素上进行渲染。
构造函数在目标节点中(getViewport())放置一个视图容器(css类名为ol-viewport
),在viewport中添加了两个元素:一个是css类名为ol-overlaycontainer-stopevent
用于控制和一些覆盖层,另一个css类名为ol-overlaycontainer
为了另外一些覆盖层。map本身也在viewport中放置了一个元素。
Layers被存储在一个ol.Collection
集合中。顶级组由库提供。这是一个通过getLayerGroup
和setLayerGroup
可以获得的。输入到选项中的Layers会被添加到这个组中,然后在组中,通过addLayer
和removeLayer
改变图层结合。getLayers
是一个方便的功能对于getLayerGroup().getlayers()
方法。请注意,ol.layer.Group
是ol.layer.Base
的子类,所以输入到选项的图层或者通过addLayer
方法添加的,可以是组,而且这个组里面也可以包含更多的组。
二、创建
new ol.Map
Options:
1. controls
Controls是最初添加到地图上的,如果不是特殊指定,将会调用ol.control.defaults()
方法。
2. pixelRatio
这比例是设备的物理像素与Dips之间的比例,如果没有定义,将会通过window.devicePixelRatio
方法获得。
3. interactions
Interactions是最初添加到地图上的,如果没有定义,通过ol.interaction.defaults
方法获得。
4. keyboardEventTarget
用来监听键盘事件的元素。这决定了什么时候触发keyboardPan
和keyboardZoom
交互。例如,如果这个选项设置到document
上,键盘的交互效果始终会被触发。如果这个选项不是特定的,这个库监听键盘事件的元素在地图目标上(如用户为map提供的div
节点)。如果不是document
,目标元素需要集中在要发出的关键事件上,这要求目标元素有一个tabindex
的属性。
5. layers
图层。如果没有定义,地图将会没有渲染图层。注意,图层是按照提供的顺序来进行渲染。例如,如果想一个矢量层出现块层的上面,那么数量层必须在块层后面。
6. loadTilesWhileAnimating
默认值为false;如果设置属性为true,块层将会在动画中加载。这种方式提高用户体验,但是会在低内存的设备上出现动画卡顿。
7. loadTilsdWhileInteracting
默认值为false;当设置为true时,块层会在地图交互的时候加载。这种方式会提高用户体验,但是会在低内存的设备上使地图平移和缩放出现不稳定。
8. logo
地图标志。一个标志会一直出现在地图上,如果提供了一个字符串,这将会被设置为标志的图像资源。如果提供一个对象,src
的属性应该是图像的URL,href
的属性应该是URL创建的链接。如果提供一个元素,将会使用这个元素。为了禁用地图标志,设置选项为false。默认情况下,OpenLayers的标志是展示的。
9. moveTolerance
这个光标必须移动的距离(用像素表示)被用来检测为地图移动事件而不是点击事件。增加这个值可以更容易的在地图上点击。默认值为1。
10. overlayers
覆盖层初始化时添加到地图上。默认情况下,没有添加任一覆盖层。
11. renderer
渲染器。默认情况下,Canvas 和 WebGL渲染器按照顺序进行测试渲染。使用死一个支持的渲染器。这里,指定ol.renderer.Type
用于特定的渲染器。注意,Canvas渲染器支持所有的矢量数据,但是WebGL仅仅支持点的几何图形(point geometries)
12. target
地图的容器,也是元素本身,或者元素id
。如果在构建时没有指定,ol.Map#setTarget
必须要求地图被渲染。
13. view
地图的视图。除非在构建地图的时候指定,不然不会有图层资源。或者通过ol.Map#setView
来进行设置。
转载自:https://blog.csdn.net/u012832088/article/details/78695105