1. 程式人生 > 程式設計 >OpenLayers3實現滑鼠移動顯示座標

OpenLayers3實現滑鼠移動顯示座標

本文例項為大家分享了OpenLayers3實現滑鼠移動顯示座標的具體程式碼,供大家參考,具體內容如下

1. 前言

滑鼠移動顯示座標,OpenLayers 3 框架提供了滑鼠移動顯示座標的控制元件(ol.control.MousePosition),預設顯示在地圖的右上角,其樣式可以自定義。在這個例子中,我們通過前面的載入 OSM 載入瓦片圖層,實現在地圖容器的左下角顯示座標點的資訊。

2. 實現思路

(1)新建一個網頁,參考前面的載入 OSM 瓦片地圖,實現載入瓦片地圖。
(2)在地圖容器中新建一個 div 用於顯示座標資訊,並設定其樣式,通過設定 z-index 讓其顯示到地圖上面。
(3)例項化一個滑鼠位置控制元件(ol.control.MousePosition),可以根基實際的需求設定其,引數,例如座標系(projection)、座標值的顯示格式(coordinateFormat)、關聯顯示滑鼠位置座標點的目標容器(target)等。

(4)在地圖容器中載入到地圖容器中。可以在例項化地圖容器 Map 的程式碼中,通過設定 controlas 引數載入滑鼠位置控制元件,也可以呼叫 map 物件的 addControl 方法載入控制元件。

3. 實現程式碼如下:

html:

<!DOCTYPE html>
<html lang="en">

<head>
 <meta charset="UTF-8">
 <title>滑鼠移動顯示座標資訊</title>
 <link rel="stylesheet" href="css/bootstrap.min.css" >
 <link rel="stylesheet" href="css/ol.css" >
 <link rel="stylesheet" href="css/ZoomSlider.css" >
 <script src="js/ol.js"></script>
 <script src="js/MousePosition.js"></script>
 <style>
 #map {
  width: 100%;
  height: 100%;
  position: absolute;
 }

 #mouse-position {
  float: left;
  position: absolute;
  bottom: 5px;
  width: 200px;
  height: 20px;
  /* 將z-index設定為顯示在地圖上層 */
  z-index: 2000;
 }
 /* 顯示滑鼠資訊的自定義樣式設定 */

 .custom-mouse-position {
  color: red;
  font-size: 16px;
  font-family: "微軟雅黑";
 }
 </style>
</head>

<body onload="init()">
 <div id="map">
 <div id="mouse-position"></div>
 </div>
</body>

</html>

程式碼解析:

在地圖容器中建立一個 div 用於顯示座標資訊,並設定其樣式,這個 div 層是是滑鼠位置控制元件的最外層容器,它所包含的內層為滑鼠資訊文字標籤,預設類名為 ol-mouse-position,可以自行定義。例如我們修改了他的字型大小以及顏色等。

js程式碼:

function init() {
 // 例項化滑鼠位置控制元件
 var mousePositionControl = new ol.control.MousePosition({
 coordinateFormat: ol.coordinate.createStringXY(4),//座標格式
 projection: 'EPSG:4326',//地圖投影座標系
 className: 'custom-mouse-position',//座標資訊顯示樣式
 // 顯示滑鼠位置資訊的目標容器
 target: document.getElementById('mouse-position'),undefinedHTML: '&nbsp' //未定義座標的標記
 });


 // 例項化Map物件載入地圖
 var map = new ol.Map({
 target: 'map',//地圖容器div的id
 layers: [ //地圖容器載入的圖層
  new ol.layer.Tile({ //載入瓦片圖層資料
  source: new ol.source.OSM() //資料來源,載入OSM資料
  })
 ],view: new ol.View({
  center: [102,35],zoom: 3
 }),// 載入控制元件到地圖容器中
 // 載入滑鼠位置控制元件
 controls: ol.control.defaults().extend([mousePositionControl])
 });
}

程式碼解析

(1)coordinateFormat:座標值的顯示格式。
(2)projection:投影座標系,將當前滑鼠位置的座標點設定為當前座標系下的相應值進行顯示。
(3)target:關聯顯示其座標點資訊的目標容器,即最外層容器元素,就是我們建立的 id 為mouse-position 的 div 元素。
(4)className:座標資訊採用的顯示樣式的類名即座標值文字的樣式類名,就是我們自定義的樣式類名 custom-mouse-position 。

實現效果如下:

OpenLayers3實現滑鼠移動顯示座標

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。