使用openlayers加载OSM街道图,谷歌影像图以及天地图地形图

爱被打了一巴掌 2021-07-25 19:42 1159阅读 0赞

目录

一,OSM街道图

1,安装ol

2,在components文件夹下面新建olmap.vue

3,运行结果

二,谷歌影像图

三,天地图地形图


一,OSM街道图 (匹配4326

1,安装ol

  1. cnpm i ol -S

2,在components文件夹下面新建olmap.vue

  1. <template>
  2. <div id="map"></div>
  3. </template>
  4. <script>
  5. import 'ol/ol.css'
  6. import {Map,View} from 'ol'
  7. import TileLayer from 'ol/layer/Tile'
  8. import OSM from 'ol/source/OSM'
  9. export default {
  10. data() {
  11. return {
  12. };
  13. },
  14. mounted() {
  15. new Map({
  16. target: "map",
  17. layers: [
  18. new TileLayer({
  19. source: new OSM()
  20. })
  21. ],
  22. view: new View({
  23. projection: "EPSG:4326", //使用这个坐标系
  24. center: [104.704968,31.540962], //西南科技大学
  25. zoom: 15
  26. })
  27. });
  28. }
  29. };
  30. </script>
  31. <style>
  32. #map {
  33. height: 100vh;
  34. width: 100vw;
  35. }
  36. </style>

修改APP.vue如下

  1. <template>
  2. <div id="app">
  3. <olmap/>
  4. <router-view/>
  5. </div>
  6. </template>
  7. <script>
  8. import olmap from '@/components/olmap.vue'
  9. export default {
  10. name: 'App',
  11. components:{
  12. olmap
  13. }
  14. }
  15. </script>
  16. <style>
  17. /* #app {
  18. font-family: 'Avenir', Helvetica, Arial, sans-serif;
  19. -webkit-font-smoothing: antialiased;
  20. -moz-osx-font-smoothing: grayscale;
  21. text-align: center;
  22. color: #2c3e50;
  23. margin-top: 60px;
  24. } */
  25. #app {
  26. height: 100%;
  27. }
  28. *{padding:0; margin:0;}
  29. html,body{
  30. height: 100%;
  31. }
  32. </style>

目录结构:

20191007181907933.png

3,运行结果

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMzIzMjU2_size_16_color_FFFFFF_t_70

注意:有时候加载出来的地图只显示一半,此时只需要将APP.vue中的app样式中的text-align属性设为‘left’即可

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMzIzMjU2_size_16_color_FFFFFF_t_70 1

二,谷歌影像图

  1. // Google影像地图
  2. source: new XYZ({
  3. url:
  4. "http://mt3.google.cn/vt/lyrs=s&hl=zh-CN&gl=cn&x={x}&y={y}&z={z}"
  5. })

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMzIzMjU2_size_16_color_FFFFFF_t_70 2

如果坐标系不匹配的话,可以试一下天地图影像图(匹配4326):

  1. source: new XYZ({
  2. url:
  3. "http://t3.tianditu.com/DataServer?T=img_w&x={x}&y={y}&l={z}&tk=5a257cd2df1b3311723bd77b0de14baf",
  4. })

三,天地图

  1. // 天地图地形图
  2. source: new XYZ({
  3. url:
  4. "http://t4.tianditu.com/DataServer?T=ter_w&x={x}&y={y}&l={z}&tk=5a257cd2df1b3311723bd77b0de14baf"
  5. })
  6. // 天地图影像图
  7. source: new XYZ({
  8. url:
  9. "http://t3.tianditu.com/DataServer?T=img_w&tk=5a257cd2df1b3311723bd77b0de14baf&x={x}&y={y}&l={z}"
  10. })
  11. // 天地图标注
  12. source: new XYZ({
  13. url:
  14. "http://t4.tianditu.com/DataServer?T=cva_w&tk=5a257cd2df1b3311723bd77b0de14baf&x={x}&y={y}&l={z}"
  15. })
  16. // 天地图底图
  17. source: new XYZ({
  18. url:
  19. "http://t4.tianditu.com/DataServer?T=vec_w&tk=5a257cd2df1b3311723bd77b0de14baf&x={x}&y={y}&l={z}"
  20. })

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMzIzMjU2_size_16_color_FFFFFF_t_70 3watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMzIzMjU2_size_16_color_FFFFFF_t_70 4watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMzIzMjU2_size_16_color_FFFFFF_t_70 5watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMzIzMjU2_size_16_color_FFFFFF_t_70 6

还有更多底图加载,见:https://www.cnblogs.com/asdlijian/p/13518837.html

修改地图层级方法:

  1. zoomIn() {
  2. this.map.getView().setZoom(this.map.getView().getZoom() + 1);
  3. },
  4. zoomOut() {
  5. this.map.getView().setZoom(this.map.getView().getZoom() - 1);
  6. }

发表评论

表情:
评论列表 (有 0 条评论,1159人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Openlayers实战:天地

    国家地理信息公共服务平台“天地图”(以下简称“天地图“)是国家基础地理信息中心建设的网络化地理信息共享与服务门户。 其属于国家队的,有一定的权威性。 在Openlayers中如

    相关 supMap天地

    由于2019年1月1日起天地图API及服务接口调用都需要获得开发授权,所以必须得先在“国家地理信息公共服务平台”([https://www.tianditu.gov.cn][h