openlayers3入門教程
摘要
OpenLayers 3對OpenLayers網絡地圖庫進行了根本的從新設計。版本2雖然被普遍使用,但從JavaScript開發的早期發展階段開始,已日益現實出它的落後。 OL3已運用現代的設計模式從底層重寫。
最初的版本旨在支持第2版提供的功能,提供大量商業或免費的瓦片資源以及最流行的開源矢量數據格式。與版本2同樣,數據能夠被任意投影。最初的版本還增長了一些額外的功能,如可以方便地旋轉地圖以及顯示地圖動畫。
OpenLayers 3同時設計了一些主要的新功能,如顯示三維地圖,或使用WebGL快速顯示大型矢量數據集,這些功能將在之後的版本中加入。
爲了看清楚OpenLayers的Layer結構體系,先看下面的UML圖。
- <script type="text/javascript">
- window.onload = function () {
- //實例化map對象並加載地圖
- var map = new ol.Map({
- //存放地圖目標容器
- target: 'map',
- //加載圖層
- layers: [
- //新建一個瓦片地圖圖層
- new ol.layer.Tile({
- //瓦片地圖數據源
- source: new ol.source.OSM()
- })
- ],
- //初始化視圖
- view: new ol.View({
- //視圖中心點座標
- center: [12550000, 3680000],
- //縮放等級
- zoom: 8,
- //最小縮放等級
- minZoom: 6,
- //最大縮放等級
- maxZoom: 12,
- //地圖旋轉30度
- rotation: Math.PI/6
- })
- });
-
- //獲取地圖的初始化信息
- var view = map.getView();
- var zoom = view.getZoom();
- var center = view.getCenter();
- var rotation = view.getRotation();
-
- //地圖縮小
- document.getElementById("zoom-out").onclick = function () {
- //獲取地圖當前視圖
- var view = map.getView();
- //獲取地圖當前縮放等級
- var zoom = view.getZoom();
- //每單擊一次地圖的縮放等級減一,以實現地圖縮小
- view.setZoom(zoom - 1);
- };
-
- //地圖放大
- document.getElementById("zoom-in").onclick = function () {
- //獲取地圖當前視圖
- var view = map.getView();
- //獲取地圖當前縮放等級
- var zoom = view.getZoom();
- //每單擊一次地圖的縮放等級加一,以實現地圖放大
- view.setZoom(zoom + 1);
- };
-
- //地圖平移
- document.getElementById("panto").onclick = function () {
- //獲取地圖當前視圖
- var view = map.getView();
- //指定要平移到的位置的座標
- var position = ol.proj.fromLonLat([115.2341, 32.4652]);
- //重設地圖中心點,實現平移
- view.setCenter(position);
- };
-
- //地圖重置
- document.getElementById("restore").onclick = function () {
- //重置中心點位置爲初始化位置
- view.setCenter(center);
- //重置旋轉角度爲初始化角度
- view.setRotation(rotation);
- //重置縮放等級爲初始化縮放等級
- view.setZoom(zoom);
- };
- }
- 爲地圖添加彈出框(完整代碼詳見:http://blog.csdn.net/qingyafan/article/details/44415631)
- /**
- * Add a click handler to the map to render the popup.
- */
- map.addEventListener('click', function(evt) {
- var coordinate = evt.coordinate;
- var hdms = ol.coordinate.toStringHDMS(ol.proj.transform(
- coordinate, 'EPSG:3857', 'EPSG:4326'));
- content.innerHTML = '<p>你點擊的座標是:</p><code>' + hdms + '</code>';
- overlay.setPosition(coordinate);
- map.addOverlay(overlay);
- });
![](http://static.javashuo.com/static/loading.gif)
- </script>
- openlayers進階學習——多標註顯示/點擊彈出框/圖層控制/搜索定位/新增標註等
- 多標註顯示
- 、多標註顯示:經過Feature和Marker實現多點標註。(技術:http://blog.csdn.net/linlzk/article/details/20049405)
- .openlayers3之動態點擴散效果(http://blog.csdn.net/qingyafan/article/details/49848455)
- openlayers中三種動畫實現(http://blog.csdn.net/u014529917/article/details/52514204)