使用leaflet库加载服务器离线地图瓦片(这边以本地nginx服务器为例)

1,下载nginx并配置nginx配置文件(nginx.conf中配置跨域和本地服务图片地址)

javascript 复制代码
#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       1995;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            #root   html;
            root   D:/gmaps; #瓦片地址
            add_header 'Access-Control-Allow-Origin' '*';
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}


    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

}

2,leaflet中使用

html 复制代码
<!DOCTYPE html>
<html>
<head>
  <title>本地显示谷歌地图瓦片</title>
  <meta charset="utf-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">

  <link rel="stylesheet" href="leaflet.css" />
   
  <script src="leaflet.js"></script>

  <link rel="stylesheet" href="L.Control.Zoominfo.css" />
  <script src="L.Control.Zoominfo.js" ></script>
<link rel="stylesheet" href="https://unpkg.com/leaflet/dist/leaflet.css" />
<script src="https://unpkg.com/leaflet/dist/leaflet.js"></script>
  <script src="leaflet-tilelayer-colorizr.js"></script>
<script src="https://unpkg.com/proj4leaflet@1.4.2/lib/proj4js-compressed.js"></script>
<script src="https://unpkg.com/proj4leaflet@1.4.2/lib/proj4leaflet-compressed.js"></script>
<script src="https://unpkg.com/leaflet-google-layer/dist/leaflet-google-layer.js"></script>

  <style>
    body {
      padding: 0;
      margin: 0;
    }

    html, body, #map {
      height: 100%;
    }
#map {


  
}
#mapp{
  webkit-filter: invert(1) saturate(0.4) brightness(1.6)!important;
    -moz-filter: invert(1) saturate(0.4) brightness(1.6)!important;
    filter: invert(1) saturate(1) brightness(0.6)!important; 
     filter: invert(90%) hue-rotate(180deg);
  filter: brightness(0.6)contrast(1.2)grayscale(0.3);
              -webkit-filter: invert(50%) grayscale(0) saturate(0.5) brightness(1.6) opacity(1) hue-rotate(334deg) sepia(10%) !important;
            -ms-filter: invert(1) grayscale(0) saturate(0.5) brightness(1.6) opacity(1) hue-rotate(334deg) sepia(10%) !important;
            -moz-filter: invert(1) grayscale(0) saturate(0.5) brightness(1.6) opacity(1) hue-rotate(334deg) sepia(10%) !important;
            filter: invert(1) grayscale(0) saturate(0.5) brightness(1.6) opacity(1) hue-rotate(334deg) sepia(1%) !important;
}
.leaflet-zoom-animated img {

          } 

  </style>
</head>
<body>
  <div id="map"></div>
  
  <script>
    var map = L.map('map', {
      zoominfoControl: true,
      zoomControl: false,
      zoom: 5, 
      //center: [31.22, 121.48], 
      attributionControl: true 
    }).setView([23.3725, 116.4238], 5);
    //var map = L.map('map').setView([23.1291, 113.2644], 13);
   /*L.tileLayer('gmaps/{z}/{x}/{y}.png', {

      maxZoom: 15,
 
      attribution: 'Map data &copy; GoogleMap,Support by <a href="http://rovertang.com/">RoverTang</a>'
    }).addTo(map);*/

L.tileLayer.colorizr('http://192.168.2.25:1995/{z}/{x}/{y}.png', {

      maxZoom: 6,
      crossOrigin: "Anonymous",
      attribution: 'Map data &copy; GoogleMap,Support by <a href="http://rovertang.com/">RoverTang</a>',
      colorize: function (pixel) {
            // 这个方法用来调整所有的图片上的rgb值,pixel是图片原有的rgb值
           pixel.r += 24;
           pixel.g += 24;
           pixel.b += 24;
           // pixel.a+=0.1;
           return pixel;
       }
    }).addTo(map);

     var marker = L.marker([22.7457, 113.9454]).addTo(map)
    .bindPopup("这是一个标注点")
    .openPopup();
    var marker = L.marker([35.86, 99.66]).addTo(map)
    .bindPopup("这是二个标注点")
    .openPopup();
      var marker = L.marker([23.6673527777777, 104.385552777777]).addTo(map)
    .bindPopup("这是二个标注点")
    .openPopup();
 
  </script>
</body>
</html>
相关推荐
大树8812 小时前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠12 小时前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质12 小时前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
小宇宙Zz12 小时前
Maven依赖冲突
java·服务器·maven
Inhand陈工13 小时前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智13 小时前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_14 小时前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
古城小栈14 小时前
Unix 与 Linux 异同小叙
linux·服务器·unix
施努卡机器视觉14 小时前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造
程序猿阿伟15 小时前
《Chrome离线扩展安装的底层逻辑与场景落地指南》
服务器·网络·chrome