vue加载百度离线地图V3.0瓦片数据,瓦片数据做nginx代理

1:资源准备

1.1百度离线文件

链接: https://pan.baidu.com/s/1-3tZ6eZvp2vdCsWLi-9MAg
提取码: vjxa

1.2瓦片数据下载器

链接: https://pan.baidu.com/s/1MZjWobc1DQGX_ApYBNtROg
提取码: pxd1

2:构建vue的空项目

此步直接略过,不会的自行解决

3:在vue2.x中使用

3.1 把下载的1.1中的百度离线文件解压到 public/static下,static文件夹自己新建一个

解压到public/static下

3.2 在index.html中引入mao_load.js 文件

记住文件路径不要用相对路径 会报 Uncaught SyntaxError: Unexpected token < 错误
注意写法


    <script src="<%= BASE_URL %>static/map_load.js"></script>

3.3 完了之后就新建文件,开始在页面上使用,这里我直接在HelloWorld.vue组件中使用的,做的demo
<template>
  <div class="hello">
    <h1>{{ msg }}</h1>
    <p>
      For a guide and recipes on how to configure / customize this project,
      <br />check out the
      <a
        href="https://cli.vuejs.org"
        target="_blank"
        rel="noopener"
      >vue-cli documentation</a>.
    </p>
    <div class="wrap">
      <div id="container"></div>
      <div id="container2"></div>
    </div>
  </div>
</template>

<script>
export default {
  name: "HelloWorld",
  props: {
    msg: String
  },
  mounted() {
    this.builmap();
  },
  methods: {
    builmap() {
      let map = new window.BMap.Map("container");
      let point = new window.BMap.Point(114.28398, 30.601327);
      map.centerAndZoom(point, 12);
      map.enableScrollWheelZoom(true);
      map.addEventListener("click", function(e) {
        console.log(e.point.lng + "," + e.point.lat);
      });

      let map2 = new window.BMap.Map("container2");
      let point2 = new window.BMap.Point(114.28398, 30.601327);
      map2.centerAndZoom(point2, 12);
      map2.enableScrollWheelZoom(true);
      map2.addEventListener("click", function(e) {
        console.log(e.point.lng + "," + e.point.lat);
      });
      
    }
  }
};
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>

ul {
  list-style-type: none;
  padding: 0;
}
li {
  display: inline-block;
  margin: 0 10px;
}
a {
  color: #42b983;
}
.wrap {
  display: flex;
  justify-content: space-around;
}
#container {
  width: 500px;
  height: 500px;
  border: 1px solid red;
}
#container2 {
  width: 500px;
  height: 500px;
  border: 3px solid pink;
}
</style>
直接把代码贴出来了

4:瓦片做nginx代理

4.1 先下载nginx,博主直接放到桌面解压出来的,进入conf文件夹,直接用vscode打开nginx.conf文件,修改如下:

nginx配置
别的不用做修改,第36行是监听你的端口号,根据自己的实际情况做对应的修改


#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       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   E:/IMChenng/download/bmap_offline_demo/tiles; #瓦片地址
            
        }

        #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;
    #    }
    #}

}
4.2 打开 bmap_offline_api_v3.0_min.js 文件 ,定位到 6518 行,根据自己实际情况,做如下的修改:

在这里插入图片描述

4.3 启动nginx,启动vue这个项目,就会发现,离线地图加载出来了,

在这里插入图片描述
控制台也不会报错,只要你下载了对应的瓦片数据。

4.3 贴上 github项目地址 打开即可
4.4 贴上gitee 项目地址 无需魔法上网
4.5 有什么不懂的,就留言评论或者私信吧。我也不是很懂。大家互相交流~
4.6 贴一个小工具:高德地图获取经纬度
  • 9
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 30
    评论
1. 在百度地图开放平台申请密钥 首先需要在百度地图开放平台上申请密钥,申请地址为:http://lbsyun.baidu.com/apiconsole/key/create。根据提示填写应用名称、应用类型等信息,然后点击创建密钥,即可获取到ak(Access Key)。 2. 引入百度地图JavaScript API 在页面中引入百度地图JavaScript API的代码,代码如下: ``` <script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=你的ak"></script> ``` 需要将上面代码中的“你的ak”替换为你在百度地图开放平台申请到的ak。 3. 创建地图容器 在页面中创建一个div元素作为地图容器,代码如下: ``` <div id="mapContainer" style="width: 100%; height: 100%;"></div> ``` 需要为div元素设置宽度和高度,这里设置为100%。 4. 初始化地图 在页面中添加JavaScript代码,初始化地图,代码如下: ``` var map = new BMap.Map("mapContainer"); map.centerAndZoom(new BMap.Point(116.404, 39.915), 11); ``` 这里创建了一个地图对象,将地图容器的id传入BMap.Map()方法中,然后使用BMap.Point()方法创建一个地图中心点的坐标,最后使用map.centerAndZoom()方法将地图缩放级别设置为11。 5. 添加离线地图插件 在页面中引入离线地图插件的代码,代码如下: ``` <script type="text/javascript" src="http://api.map.baidu.com/library/OfflineMap/1.2/src/OfflineMap.min.js"></script> ``` 然后在JavaScript代码中添加以下代码,启用离线地图插件: ``` var offlineMap = new BMap.OfflineMap(); map.addControl(offlineMap); ``` 这里创建了一个离线地图对象,并将其添加到地图中。 6. 下载离线地图 使用离线地图插件提供的download()方法,下载离线地图,代码如下: ``` offlineMap.download(11); //将缩放级别为11的地图下载到本地 ``` 这里将缩放级别为11的地图下载到本地,可以根据自己的需求设置缩放级别。 7. 加载离线地图 使用离线地图插件提供的load()方法,加载离线地图,代码如下: ``` offlineMap.load(11); //加载缩放级别为11的离线地图 ``` 这里加载缩放级别为11的离线地图,可以根据自己的需求设置缩放级别。 8. 查看离线地图 在浏览器中打开网页,即可看到下载的离线地图。当网络不可用时,地图仍然可以正常显示,因为已经下载了离线地图

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 30
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值