天天看點

Web GIS 離線地圖

Web GIS 離線地圖

1,基于瓦片的離線地圖下載下傳

部落格園 阿凡盧 提供了離線地圖的下載下傳工具,下載下傳位址:http://pan.baidu.com/s/1cxGpXW 具體使用見 參考資料2

Web GIS 離線地圖

阿凡盧 提供的地圖下載下傳軟體,對于導出的瓦片圖檔的目錄是基于ArcGIS切片目錄,我編寫了将導出到Mysql資料庫中的瓦片資料導出為{type}/{z}/{x}/{y}.png 格式。具體步驟如下:

A 使用 阿凡盧 提供的地圖下載下傳軟體将地圖導出到Mysql資料庫

B 使用我開發的軟體把Mysql資料庫中的瓦片資料導出到本地檔案 點選這裡下載下傳

Web GIS 離線地圖

導出的圖檔目錄如下:

Web GIS 離線地圖
Web GIS 離線地圖

這二步做好了以後,在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: '&copy; Google China'
        }).addTo(map);
        
        L.marker([31.229243, 121.479950]).addTo(map)
            .bindPopup('DTS 1<br>31° 38° 49°')
            .openPopup();
    </script>      

效果圖如下:

Web GIS 離線地圖

參考資料:

1 Web GIS離線解決方案

2 百度谷歌離線地圖解決方案(離線地圖下載下傳)