Web GIS 離線地圖
1,基于瓦片的離線地圖下載下傳
部落格園 阿凡盧 提供了離線地圖的下載下傳工具,下載下傳位址:http://pan.baidu.com/s/1cxGpXW 具體使用見 參考資料2
阿凡盧 提供的地圖下載下傳軟體,對于導出的瓦片圖檔的目錄是基于ArcGIS切片目錄,我編寫了将導出到Mysql資料庫中的瓦片資料導出為{type}/{z}/{x}/{y}.png 格式。具體步驟如下:
A 使用 阿凡盧 提供的地圖下載下傳軟體将地圖導出到Mysql資料庫
B 使用我開發的軟體把Mysql資料庫中的瓦片資料導出到本地檔案 點選這裡下載下傳
導出的圖檔目錄如下:
這二步做好了以後,在IIS上建立一個空的網站,把我們的地圖切片拷貝過去即可。
2,前端JS 用來加載地圖的瓦片資料
前端推薦使用 Leaflet ,這裡我已經把相關的 css,js 下載下傳到了本地。具體 代碼如下:
<html>
<head>
<title>離線地圖</title>
<link rel="stylesheet" href="dist/leaflet.css" />
<!--[if lte IE 8]>
<link rel="stylesheet" href="dist/leaflet-ie.css" />
<link rel="stylesheet" href="dist/locate-ie.css"/>
<![endif]-->
<link rel="stylesheet" href="dist/mobile.css" />
<link rel="stylesheet" href="dist/locate.css" />
<script src="dist/leaflet.js"></script>
<script src="dist/proj4js-compressed.js"></script>
<script src="dist/proj4leaflet.js"></script>
<script src="dist/locate.js" ></script>
</head>
<body>
<div id="map"></div>
</body>
<script type="text/javascript">
var map = L.map('map').setView([31.2269, 121.4648], 12);
L.tileLayer('http://localhost:8080/1818940751/{z}/{x}/{y}.png', {
attribution: '© Google China'
}).addTo(map);
L.marker([31.229243, 121.479950]).addTo(map)
.bindPopup('DTS 1<br>31° 38° 49°')
.openPopup();
</script>
效果圖如下:
參考資料:
1 Web GIS離線解決方案
2 百度谷歌離線地圖解決方案(離線地圖下載下傳)