1. 程式人生 > >12 地圖新增測量控制元件

12 地圖新增測量控制元件

地圖的測量控制元件主要實現在web端的地圖測量功能,包括距離量算、面積量算和經緯度獲取。我們可以用官方提供的預設樣式來新增,也可以自定義樣式來新增地圖量算控制元件。下面來看一下顯示效果:

面積量算:

距離量算:

經緯度獲取:

具體的操作如下:

1 測量控制元件主要依據“esri/dijit/Measurement”元件來實現,所以第一步還是一樣,載入所需要的引用:

require([

"dojo/dom",

"esri/map",

"esri/dijit/Measurement",

"dojo/domReady!"

], function(dom,Map, Measurement) {



});

2 載入完元件之後,我們要定義相應的div,此處我們選擇了官方預設的樣式,所以定義的div包括樣式等都是引用它的,如下:

<div id="map" >

<div style="position:absolute; right:20px; top:10px; z-Index:999;">

<div id="titlePane">

<div id="measurementDiv"></div>

</div>

</div>

</div>

在我們實際應用的時候預設樣式肯定不能滿足需求,所以需要同學們使用css等來修改其樣式。

3 最後一步就是例項化底圖和例項化測量控制元件,如下:

map = new Map("map", {

basemap: "osm",

center: [104.072331,30.66303],

zoom: 11

});

var measurement = new Measurement({

map: map

}, dom.byId("measurementDiv"));

measurement.startup();

4 至此,測量控制元件新增完畢,完整程式碼如下所示:

<!DOCTYPE html>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">



<meta name="viewport" content="initial-scale=1, maximum-scale=1,user-scalable=no">

<title>Measure Tool</title>

<link rel="stylesheet" href="https://js.arcgis.com/3.25/esri/themes/calcite/dijit/calcite.css">

<link rel="stylesheet" href="https://js.arcgis.com/3.25/esri/themes/calcite/esri/esri.css">

<style>

html,body {

height:100%;

width:100%;

margin:0;

}

body {

background-color:#FFF;

overflow:hidden;

font-family:"Trebuchet MS";

}

#map {

position: absolute;

width: 100%;

height: 100%;

}

#titlePane{

width:280px;

background-color: white;

}

</style>

<script src="https://js.arcgis.com/3.25/"></script>

<script>

var map;

require([

"dojo/dom",

"esri/map",

"esri/dijit/Measurement",

"dojo/domReady!"

], function(dom,Map, Measurement) {

map = new Map("map", {

basemap: "osm",

center: [104.072331,30.66303],

zoom: 11

});

var measurement = new Measurement({

map: map

}, dom.byId("measurementDiv"));

measurement.startup();

});

</script>

</head>

<body class="calcite">


<div id="map" >

<div style="position:absolute; right:20px; top:10px; z-Index:999;">

<div id="titlePane">

<div id="measurementDiv"></div>

</div>

</div>

</div>

</body>

</html>