arcgis api 3.x for js 入門開發系列三地圖工具欄(附源碼下載)


前言

關於本篇功能實現用到的 api 涉及類看不懂的,請參照 esri 官網的 arcgis api 3.x for js:esri 官網 api,里面詳細的介紹 arcgis api 3.x 各個類的介紹,還有就是在線例子:esri 官網在線例子,這個也是學習 arcgis api 3.x 的好素材。

內容概覽

  1. 地圖框選縮放、地圖漫游、清空、量算工具
  2. 地圖比例尺控件
  3. 地圖顯示坐標
  4. 地圖鷹眼
  5. 源代碼 demo 下載
  • 工具欄,在 map.html 頁面引入工具欄實現需要的 js 文件
<script type="text/javascript" src="js/main/map.map2dPanel.js"></script>

然后在 map.js 文件中地圖初始化函數 load2DMap 進行工具欄的 js 調用

//顯示地圖工具欄
DCI.map2dTool.InitTool(map);

map2dPanel.js 實現了地圖工具欄功能,談談實現核心部分功能的代碼: 
拉框放大:這個實現比較簡單,利用拉框的矩形范圍,直接設置地圖的范圍為拉框的范圍即可

$("#zoomIn").click(function () {//地圖拉框放大
map.setMapCursor("url('" + getRootPath() + "Content/images/index/cursor/zoomout.cur'),auto");//設置地圖鼠標形狀
DCI.map2dTool.drawtool.activate(esri.toolbars.Draw.EXTENT);//利用api的畫工具draw來畫矩形,獲取矩形范圍
DCI.map2dTool.drawExtent(null, function (geometry) {//draw工具畫完的回調函數
DCI.map2dTool.zoomOutByExtent(geometry);//獲取回調函數的geometry(extent)范圍
});
});
 
drawExtent: function (symbol, onDrawEnd) {
DCI.map2dTool.onDrawEnd = onDrawEnd;
},
//根據拉框范圍放大
zoomInByExtent: function (geometry) {
DCI.map2dTool.map.setExtent(geometry.getExtent());//根據extent來進行地圖縮放
}

拉框縮小:這個跟拉框放大的原理是類似的,也是首先獲取拉框的的矩形范圍,但是不同的是,獲取矩形范圍之后跟地圖當前的范圍按一定的比例進行計算,構造一個新的范圍extent,然后再進行地圖的縮放

更多的詳情見GIS之家小專欄

文章尾部提供源代碼下載,對本專欄感興趣的話,可以關注一波

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM