MapView.vue 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. <template>
  2. <view id="container" class=""></view>
  3. <!-- <image src="@/static/images/logo2.jpg"></image> -->
  4. <!-- <image src="@/static/images/xxmLogo.png"></image> -->
  5. <!-- <image src="@/static/roadmap/3/6/3.png"></image> -->
  6. <!-- <image src="../../static/roadmap/3/6/3.png"></image> -->
  7. <!-- <link href="ol/ol.css"></link> -->
  8. </template>
  9. <script module="ol" lang="renderjs">
  10. // import Axios from "../../static";
  11. // import "ol/ol.css";
  12. import {
  13. transform
  14. } from "ol/proj.js";
  15. import Map from "ol/Map";
  16. import View from "ol/View";
  17. // import TileLayer from "ol/layer/Tile";
  18. import XYZ from "ol/source/XYZ";
  19. import Tile from "ol/layer/Tile";
  20. import OSM from 'ol/source/OSM'
  21. let map = null;
  22. export default {
  23. name: "map-view",
  24. data() {
  25. return {
  26. maps: {},
  27. };
  28. },
  29. mounted() {
  30. this.createMap();
  31. },
  32. methods: {
  33. createMap() {
  34. var view = new View({
  35. center: transform([116.40, 39.91], "EPSG:4326", "EPSG:3857"), //地图初始中心点
  36. // center: gcoord.transform([103.23, 35.33], "EPSG:4326", "EPSG:3857"), //地图初始中心点
  37. // [106.67591743605254, 38.21012898330025],
  38. // gcoord.WGS84,
  39. // gcoord.BD09
  40. // ), //地图初始中心点
  41. projection: "EPSG:3857",
  42. zoom: 12,
  43. minZoom: 2,
  44. maxZoom: 20
  45. });
  46. this.addMap("container", view);
  47. },
  48. addMap(target, view) {
  49. if (this.maps[target]) return;
  50. // var gaodeMapLayer = new TileLayer({
  51. // title: "高德地图",
  52. // source: new XYZ({
  53. // url: "http://wprd0{1-4}.is.autonavi.com/appmaptile?lang=zh_cn&size=1&style=7&x={x}&y={y}&z={z}",
  54. // wrapX: false,
  55. // }),
  56. // });
  57. // 使用OpenStreetMap地图源
  58. // var osm= new Tile({
  59. // source: new OSM(),
  60. // });
  61. // var osm = new Tile({
  62. // source: new XYZ({
  63. // url: "@/static/roadmap/{z}/{x}/{y}.png",
  64. // }),
  65. // });
  66. //console.log('../../../www/static/roadmap/{2}/{3}/{1}.png')
  67. //var vecLayer1 = new Tile({
  68. // source: new XYZ({
  69. // url: "../../../www/static/roadmap/{z}/{x}/{y}.png",
  70. // }),
  71. //});
  72. var key = "12df6e32906dbb916fad14dc65ebdbf8"; // 请替换成你的key
  73. // 矢量底图
  74. var vecLayer = new Tile({
  75. source: new XYZ({
  76. //url: 'http://{s}.tile.osm.org/{z}/{x}/{y}.png'
  77. //'&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors',
  78. url:"http://t0.tianditu.gov.cn/vec_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=vec&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=" +key,
  79. }),
  80. });
  81. // 矢量标注
  82. var cvaLayer = new Tile({
  83. source: new XYZ({
  84. url: "http://t0.tianditu.gov.cn/cva_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cva&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=" +
  85. key,
  86. }),
  87. });
  88. console.log("瓦片路径:..doc/tiles/{z}/{x}/{y}.png");
  89. var lyr = new Tile({
  90. source: new XYZ({
  91. //url: "http://49.232.215.206:3001/static/tiles/gg/{z}/{x}/{-y}.png"
  92. url: "../doc/tiles/{z}/{x}/{-y}.png"
  93. }),
  94. });
  95. let map = new Map({
  96. //地图容器div的ID
  97. target,
  98. //地图容器中加载的图层
  99. // layers: [gaodeMapLayer],
  100. // layers: [lyr],
  101. layers: [vecLayer, cvaLayer, lyr],
  102. //地图视图设置
  103. view, //同一个view
  104. });
  105. this.maps[target] = map;
  106. // window.map = this.maps;
  107. console.log(map, "window.map", lyr);
  108. },
  109. },
  110. };
  111. </script>
  112. <style scoped>
  113. #container {
  114. width: 100vw;
  115. height: 40vh;
  116. }
  117. </style>