利用Echarts製作地圖(一)
Echarts作為一個前端視覺化工具,支援地圖圖表的展示。從本篇開始,將用三篇文章說明如何利用echats製作自定義區域的單圖例、多圖例及動態載入地圖所需資料。 Echarts支援 js 格式 與 geoJson格式的地圖。並且其官網提供了全國及省市自治區的地圖檔案可供下載 。本篇利用前面spring boot + jsp的專案進行演示。
0.專案最終目錄結構如下:
1. 引入jquery.js和echarts.js檔案到頁面
2.在頁面上建立一個地圖容器<script type="text/javascript" src = "/jquery-1.9.1.min.js"></script> <script type="text/javascript" src = "/echarts.min.js"></script>
<div id="map-wrap" style="height: 500px;">
</div>
3.引入地圖檔案,echarts.js支援js格式和geojson格式的地圖檔案,但國際上geoJson格式更為標準,如果百度提供的js格式地圖足夠你使用,則可以使用這兩者其中的任何一個,如果百度提供的資料沒有你需要的,則只能想辦法自己製作資料。本篇文章後面所用資料以北京通州區下所屬各鎮為例,是作者自己製作。下文將介紹如何製作自定義區域的geojson資料。
3.1通過beijing.js方式載入資料,引入beijing.js檔案
程式碼及註釋如下:<script type="text/javascript" src= "/beijing.js"></script>
注意:在series中的map值為北京<script type="text/javascript"> $(function(){ //使用echarts.init()方法初始化一個Echarts例項,在init方法中傳入echarts map的容器 dom物件 var mapChart = echarts.init(document.getElementById('map-wrap')); // mapChart的配置 var option = { title:{ text: '北京各區示意圖', left:'center' }, tooltip: { trigger: 'item', formatter: '{b}<br/>{c} (個)' }, toolbox: { show: true, orient: 'vertical', left: 'right', top: 'center', feature: { dataView: {readOnly: false}, restore: {}, saveAsImage: {} } }, visualMap: { min: 0, max: 2000, text:['高','低'], realtime: false, calculable: true, inRange: { color: ['lightskyblue','yellow', 'orangered'] } }, series:[ { name: '北京各區', type: 'map',//type必須宣告為 map 說明該圖示為echarts 中map型別 map: '北京', //這裡需要特別注意。如果是中國地圖,map值為china,如果為各省市則為中文。這裡用北京 aspectScale: 0.75, //長寬比. default: 0.75 zoom: 1.2, //roam: true, itemStyle:{ normal:{label:{show:true}}, emphasis:{label:{show:true}} }, data: [ {name:'東城區', value: 1800}, {name:'西城區', value: 1700}, {name:'朝陽區', value: 1600}, {name:'豐臺區', value: 1400}, {name:'石景山區', value: 1200}, {name:'海淀區', value: 1000}, {name:'門頭溝區', value: 800}, {name:'房山區', value: 600}, {name:'通州區', value: 400}, {name:'順義區', value: 200}, {name:'昌平區', value: 100}, {name:'大興區', value: 300}, {name:'懷柔區', value: 500}, {name:'平谷區', value: 700}, {name:'密雲縣', value: 900}, {name:'延慶縣', value: 1100} ] } ] }; //設定圖表的配置項 mapChart.setOption(option); }) </script>
啟動專案後,如下圖所示:
3.2 引用JSON格式地圖資料:
這裡我們利用jQuery 的 $.get()方法非同步載入Beijing_TZQ_TOWN.json資料(該資料由自己製作)。前面已經引用了jquery.js檔案
程式碼及註釋如下:
<script type="text/javascript">
$(function(){
var mapChart;
var option;
$.get('./Beijing_TZQ_TOWN.json', function (beijingJson) {
echarts.registerMap('北京', beijingJson);
mapChart = echarts.init(document.getElementById('map-wrap'));
option = {
title:{
text: '北京市通州區各鎮分佈圖',
left: 'center'
},
tooltip: {
trigger: 'item',
formatter: '{b}<br/>{c} (個)'
},
toolbox: {
show: true,
orient: 'vertical',
left: 'right',
top: 'center',
feature: {
dataView: {readOnly: false},
restore: {},
saveAsImage: {}
}
},
visualMap: {
min: 0,
max: 2000,
text:['高','低'],
realtime: false,
calculable: true,
inRange: {
color: ['lightskyblue','yellow', 'orangered']
}
},
series:[
{
name: '通州區各鎮安裝機井統計圖',
type: 'map',
map: '北京', // 自定義擴充套件圖表型別
aspectScale: 1.0, //地圖長寬比. default: 0.75
zoom: 1.1, //控制地圖的zoom,動手自己更改下 看看什麼效果吧
roam: true,
itemStyle:{
normal:{label:{show:true}},
emphasis:{label:{show:true}}
}
}
]
}
mapChart.setOption(option);
});
})
</script>
啟動專案:
完整程式碼:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<head>
<link rel="stylesheet" type="text/css" href="webjars/bootstrap/3.3.7/css/bootstrap.min.css" />
<script type="text/javascript" src = "/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src = "/echarts.min.js"></script>
<script type="text/javascript" src= "/beijing.js"></script>
</head>
<script type="text/javascript">
$(function(){
var mapChart;
var option;
$.get('./Beijing_TZQ_TOWN.json', function (beijingJson) {
echarts.registerMap('北京', beijingJson);
mapChart = echarts.init(document.getElementById('map-wrap'));
option = {
title:{
text: '北京市通州區各鎮分佈圖',
left: 'center'
},
tooltip: {
trigger: 'item',
formatter: '{b}<br/>{c} (個)'
},
toolbox: {
show: true,
orient: 'vertical',
left: 'right',
top: 'center',
feature: {
dataView: {readOnly: false},
restore: {},
saveAsImage: {}
}
},
visualMap: {
min: 0,
max: 2000,
text:['高','低'],
realtime: false,
calculable: true,
inRange: {
color: ['lightskyblue','yellow', 'orangered']
}
},
series:[
{
name: '通州區各鎮安裝機井統計圖',
type: 'map',
map: '北京', // 自定義擴充套件圖表型別
aspectScale: 1.0, //長寬比. default: 0.75
zoom: 1.1,
roam: true,
itemStyle:{
normal:{label:{show:true}},
emphasis:{label:{show:true}}
}
}
]
}
mapChart.setOption(option);
});
})
</script>
<body>
<nav class="navbar navbar-inverse">
<div class="container">
<div class="navbar-header">
<a class="navbar-brand" href="#">Spring Boot</a>
</div>
<div id="navbar" class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li class="active"><a href="#">Home</a></li>
<li><a href="#about">About</a></li>
</ul>
</div>
</div>
</nav>
<div class="container">
<div class="starter-template">
<h1 style="color: #4EE2EC">Spring Boot + JSP + Echarts 製作地圖示例</h1>
<h2 style="color: #ED594E">Message: ${message}</h2>
</div>
<div id="map-wrap" style="height: 500px;">
</div>
<div>
<h3>歡迎關注微信公眾號:ThinkingInGIS</h3>
<img alt="微信公眾號" src="/qrcode_for_thinkingingis.png">
</div>
</div>
<script type="text/javascript" src="webjars/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</body>
</html>
看到這,很多人會問,該怎樣製作一個自定義區域的geojson地圖資料呢?
請看下回分解......
至此,利用spring boot + echarts 就實現了地圖的製作。
(如遇到問題,請留言給作者,以便共同探討gis知識。[email protected])
也可以通過如下公眾號留言相關推薦
利用Echarts製作地圖(一)
Echarts作為一個前端視覺化工具,支援地圖圖表的展示。從本篇開始,將用三篇文章說明如何利用echats製作自定義區域的單圖例、多圖例及動態載入地圖所需資料。 Echarts支援 js 格式 與 geoJson格式的地圖。並且其官網提供了全國及省市自治區的地圖檔案可供下載
ECharts的學習(一):製作一個簡單的柱狀圖
<!DOCTYPE html> <html> <head> <meta charset="utf-8"><meta na
百度地圖API繪製計程車流向地圖(一):將起始GPS點對映到地圖上
打算在年前實現用百度地圖API繪製NYC計程車流向地圖。目前實現了將出租車的起始點的GPS點對映到地圖上,繪製了GPS點的熱力圖。記錄在此。 所用資料:NYC綠色計程車資料 時間:2016.01.01 0:00-24:00 共24小時 GPS點個數:64398 繪圖方式:熱力圖 百度地圖
ArcGIS API For Javascript GP工具 Printing Tools匯出地圖或者列印地圖(一):GP 服務Printing Tools
ArcGIS API For Js 出圖 在Arcgisserver 10.X版本里面,安裝ArcServer之後自帶列印模板,不需要自己再單獨釋出;如果安裝之後沒用也是可以自己通過ArcToolBox裡面帶的工具自己再發布,本篇先說一下這個Printing Tools GP服務。為
1.3寸 SH1106 OLED+ESP8266 NodeMCU+DHT11氣象站製作過程(一)
一、實現功能 本方案的開發環境為Ardunio IDE,可實現本地溫溼度資訊和網路溫度、時間及未來三天天氣資訊的顯示。不聯網的狀態下只顯示本地溫溼度資訊,只有一個介面。聯網狀態下,一共四個介面。第一個介面是顯示星期,日期,時間等資訊,第二介面顯示當前溫度資訊,第三個介面顯示天氣預報資訊,
MFC對話方塊裡利用CHtmlView載入介面(一)————載入網頁
首先我們簡單瞭解下CHtmlView類,CHtmlView類是MFC類,它繼承自CView,屬於MFC檢視類。 但我們看它的具體實現時,我們會發現其最大的本質在於IWebBrowser2(WebBrowser ActiveX 控制元件)的封裝。即其實質是:利用IWebBro
Vue專案實戰引入百度地圖(一)
一、在 http://lbsyun.baidu.com/ 申請 祕鑰 二、在index.html檔案中引入 <script type="text/javascript" src="https://api.map.baidu.com/api?v=3.0&ak=Fh9X4h
自定義ImageView實現地圖(一)
現在一提到地圖很多人就會想到百度地圖高德地圖等SDK,但是公司遇到個專案要做到室內導航,現在的第三方用GPS定位又不準,所以使用了一個自定義的ImageView去實現地圖的功能。該地圖有導航、定位、分級顯示、點選檢視位置詳細資訊的功能。今天我們先說下基礎地圖資料的顯示及
遊戲製作心得(一)
談了很多關於網路遊戲的一些技術技巧和框架,但都是零散的,這有好處,但大多數新手或是愛好者都不知道該如何下手,下面談談我的遊戲開發心得 遊戲開發一般使用VC+DX,你可以使用Win32 API直接建立一個Windows應用程式框架,也可以使用MFC來建立一個Windows應用
c#面板製作教程(一)
每每看著QQ,360等等那些軟體漂亮的外衣時,你是不是總是在想我的軟體什麼時候才能穿上這麼漂亮的外衣呢?不過現在當你看到這篇文章的時候不必再發出這樣的疑問了,因為接下來我會帶領大家一步一步”畫出”這些漂亮的外衣! 在寫這系列文章之前要感謝部落格園的蘇飛,我也是看來他的文章後才
ANDROID專案中嵌入高德地圖(一)配置環境+顯示地圖
最近在做專案中嵌入高德地圖的工作,覺得有必要記錄一下嵌入過程,雖然高德官方給說明文件了,但有寫並不明確需要去查類,查資料,再此把過程記錄一下。 一、顯示地圖 1.配置AndroidManifest.xml檔案 可能需要如下許可權: <!--允許程式開啟網路套接字-
android自定義view之地圖(一)
最近參加了一個比賽,要用到自己做一個自定義的小地圖,所以在網上查找了一些關於自定義view的有關資料,也瞭解了自定義控制元件的初步知識。 效果圖 第一階段我畫了一個自制的網格圖,點哪個網格就會哪個網格就會顯示。 工作環境圖 程式碼介紹
自定義View進階--手繪地圖(一)
一:最近學習了自定義view,剛好就接到了相關的需求,於是就上手做了,下面描述一下需求 需求:簡單的來說就是做一個地圖,不同的是,為了追求美觀,於是地圖是一張由UI出的圖片,poi點 為運營採集點,實現地圖的縮放,移動,poi打點,以及其他的東西,由於
百度地圖(一)AK申請與給應用簽名
1.申請金鑰 首先,使用百度地圖sdk需要一個AK,即金鑰,進入官網,點選下方申請金鑰 然後單擊建立應用,輸入相應資訊後提交即可獲得金鑰 注意,數字簽名和報名之間的分號為英文時候的分號。 數字簽名獲取方法:eclipse獲取數字簽名時只需要在window->P
醬油帶你用cocos2dx3.0完成一款戰棋遊戲 (曹操傳)(一)地圖製作篇 1
這是醬油第一次寫部落格,所以如果有什麼寫的不好,大家多多海涵啊。那麼廢話就不多說了,直接進入正題吧。 製作一款戰棋遊戲,在醬油看來最大的難度便是 ai的設計以及 實現劇本對遊戲整體的控制,當然啦,這都是比較深的問題了,醬油會放到以後的章節來加以介紹。那麼現在就正式開始打醬油
echarts 地圖實現輪播(一)
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>ECharts</title> <!-- 引入
【cocos3.x+tilemap】製作rpg小遊戲(一)地圖製作
前面做過一個小的馬里奧遊戲,現在來實現一個小時候玩過的類似文曲星上《英雄壇說》的小RPG遊戲。 與橫板的馬里奧遊戲不同,這個遊戲需要實現的東西更多——包括45度斜角地圖、2.5D物體遮擋、尋路演算法、npc互動等,不過不需要再引入B
ArcGIS API for JavaScript3.x 學習筆記[3] 加載底圖(一)【天地圖(經緯度版)】
矢量地圖 說明 tiled spa 過程 相同 服務器列表 text 服務 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5
USGS-EROS項目espa-surface-reflectance中的LaSRC Version 1.3.0模塊利用vs2010編譯出windows64位版本(一)
product 發現 jpeg git clone args dcl 函數 中一 比較 Landsat8衛星的大氣校正目前國內有很多學者都在做,隨便百度一下就能找到很多論文,提出的算法都有各自的亮點,學術研究上都有意義。 但是,問題來了,如果要真正拿出來處理任意一幅La
Openlayers系列(一)關於地圖投影的理解
數據庫 nbsp 簡單的 是個 ace 投影 存儲 mongodb uid 近期開發以MongoDB為基礎的分布式地理數據管理平臺系統,被要求做一個簡單的demo給客戶進行演示。於是筆者便打算向數據庫中存儲一部分瓦片數據,寫一個簡單的存取服務器,使用Openlayers客戶