MapView.vue 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. <template>
  2. <view id="container" class=""></view>
  3. <!-- <link href="ol/ol.css"></link> -->
  4. </template>
  5. <script module="ol" lang="renderjs">
  6. // import "ol/ol.css";
  7. import gcoord from "gcoord";
  8. import { transform } from "ol/proj.js";
  9. import Map from "ol/Map";
  10. import View from "ol/View";
  11. // import TileLayer from "ol/layer/Tile";
  12. import XYZ from "ol/source/XYZ";
  13. import Tile from "ol/layer/Tile";
  14. let map = null;
  15. export default {
  16. name: "map-view",
  17. data() {
  18. return {
  19. maps: {},
  20. };
  21. },
  22. mounted() {
  23. this.createMap();
  24. },
  25. methods: {
  26. createMap() {
  27. var view = new View({
  28. center: transform([103.23, 35.33], "EPSG:4326", "EPSG:3857"), //地图初始中心点
  29. // center: gcoord.transform([103.23, 35.33], "EPSG:4326", "EPSG:3857"), //地图初始中心点
  30. // [106.67591743605254, 38.21012898330025],
  31. // gcoord.WGS84,
  32. // gcoord.BD09
  33. // ), //地图初始中心点
  34. projection: "EPSG:4326",
  35. zoom: 4,
  36. minZoom: 1,
  37. });
  38. this.addMap("container", view);
  39. },
  40. addMap(target, view) {
  41. if (this.maps[target]) return;
  42. // var gaodeMapLayer = new TileLayer({
  43. // title: "高德地图",
  44. // source: new XYZ({
  45. // url: "http://wprd0{1-4}.is.autonavi.com/appmaptile?lang=zh_cn&size=1&style=7&x={x}&y={y}&z={z}",
  46. // wrapX: false,
  47. // }),
  48. // });
  49. var key = "12df6e32906dbb916fad14dc65ebdbf8"; // 请替换成你的key
  50. // 矢量底图
  51. var vecLayer = new Tile({
  52. source: new XYZ({
  53. 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=" +
  54. key,
  55. }),
  56. });
  57. // 矢量标注
  58. var cvaLayer = new Tile({
  59. source: new XYZ({
  60. 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=" +
  61. key,
  62. }),
  63. });
  64. let map = new Map({
  65. //地图容器div的ID
  66. target,
  67. //地图容器中加载的图层
  68. // layers: [gaodeMapLayer],
  69. layers: [vecLayer, cvaLayer],
  70. //地图视图设置
  71. view, //同一个view
  72. });
  73. this.maps[target] = map;
  74. window.map = this.maps;
  75. console.log(window.map, "window.map");
  76. },
  77. },
  78. };
  79. </script>
  80. <style scoped>
  81. #container {
  82. width: 100%;
  83. height: 50vh;
  84. }
  85. </style>