我是JavaScript的新手,我正在评估将 OpenLayer 3 用于项目。
我正在研究关于这个库的一些教程,我对层概念有以下疑问。
所以,根据我所理解的(如果我做错了断言,请纠正我)来渲染一个简单的“Hello World”地图示例我可以这样:
var view = new ol.View2d({
center: [0,0],
zoom: 0
});
var map = new ol.Map({
target: map, // map is the id of the element in the DOM where the map will be putted
layers: [layer],
view: view // Use the previous defined view object for the settings of this map
});
我还没有在我的电脑上测试这个例子,我从这个视频教程中得到了它:https://www.youtube.com/watch?v=SPPhpLTkWX8
所以似乎地图和**视图*分开了
地图:是用户与之互动的主要对象(点击,拖放,绘制,执行操作)。
查看包含与地图的呈现方式相关的设置(在这种情况下,它是一个二维地图,指定地图居中的位置)当它显示和缩放时。
因此,根据我的理解,存在这种分离关注,因为我可以使用不同的查看对象以不同的方式显示单个地图。
这种推理是正确的还是我错过了什么?
并不是第一个大疑问:在教程中显示前面的代码会在浏览器中显示一个地图。好的,但从哪里拿这张地图?它是GoogleMap地图还是什么?这对我来说非常模糊......
然后教程继续并显示图层概念。
因此,它显示了创建 Open Street Map 图层(https://www.openstreetmap.org)的代码:
var osm = new ol.layer.Tile({
source: new ol.source.OSM();
});
然后我认为要使用此图层,我必须将其作为元素添加到图层对象中定义的先前图层:[图层] 数组中。这是对的吗?
现在我脑子里还没有那么清楚的事情是。
什么是图层?它是否类似于在特定地图上添加的附加信息,或者它是一种特殊的地图(例如Google地图或从其他地图提供商处获得的其他类型的地图)。
我认为这是第一个(有些数据显示为地图上的图层,实际上是地图对象我有一个图层数组作为字段,其中我想我可以添加更多的图层来显示此地图上的不同信息。)
但我有这个疑问,因为我无法理解谁是OpenLayer中的地图提供者(谷歌地图或什么?),如果我还可以指定特定的地图提供者。
这个疑问也是因为我看到使用OpenLayer我可以使用 Bing Map 作为图层,但据我所知 Bing Map 是地图提供者替代< strong> Google地图。
var bing= new ol.layer.Tile({
source: new ol.source.BingMaps({
key: API KEY,
style: setted style
})
});
那究竟是如何运作的?
答案 0 :(得分:2)
这是很多问题,让我试着回答一下:
所以根据我的理解,存在这种分离的关注,因为我可以使用不同的View对象以不同的方式显示单个Map。
这种推理是正确的还是我错过了什么?
实际上它是相反的。不同的地图可以共享相同的view。这是一个例子: http://openlayers.org/en/master/examples/side-by-side.html
好的,但从哪里拿这张地图?它是GoogleMap地图还是什么?这对我来说非常模糊...... ... 什么是图层?
地图是图层的集合。并且层是地理数据集/数据源的可视表示(例如,矢量要素,栅格图块和图像)。例如:
var osm = new ol.layer.Tile({
source: new ol.source.OSM();
});
这定义了一个使用OpenStreetMap图块图像作为源的图块层。如果您使用ol.source.BingMaps
替换来源,则您的图层将使用Bing中的平铺图像。
但我有这个疑问,因为我无法理解谁是OpenLayer中的地图提供者(谷歌地图或什么?),如果我还可以指定特定的地图提供者。
这个疑问也产生了,因为我看到使用OpenLayer我可以使用Bing Map作为图层,但据我所知,Bing Map是地图提供者替代谷歌地图。
OpenLayers是一个用于创建交互式地图的库。 OpenLayers不是数据提供者,但它允许使用来自不同提供者的数据,例如来自OpenStreetMap或Bing的图块。
Google有一个JavaScript库,即Google Maps JavaScript API,但Google也是其街道地图和卫星图像图块的数据提供商。
我希望这会让它更清晰一些。我建议您查看OpenLayers 3 Workshop以及mapschool.io和/或Learning Lunches: How to Make a Map ,以便更好地了解基础知识。