MapView.vue 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <template>
  2. <view id="container" class=""></view>
  3. </template>
  4. <script>
  5. import "ol/ol.css";
  6. import gcoord from "gcoord";
  7. import Map from "ol/Map";
  8. import View from "ol/View";
  9. import TileLayer from "ol/layer/Tile";
  10. import OSM from 'ol/source/OSM';
  11. import XYZ from 'ol/source/XYZ'
  12. // const getUserInfo = () => {
  13. // apiUserInfo().then(res => {
  14. // console.log(res);
  15. // userinfo.value = res.data
  16. // })
  17. // }
  18. let map: any = null
  19. export default {
  20. name: "map-view",
  21. data() {
  22. return {
  23. maps: {}
  24. }
  25. },
  26. mounted() {
  27. // this.initAMap();
  28. this.createMap();
  29. },
  30. unmounted() {
  31. map && map.destroy();
  32. },
  33. methods: {
  34. initAMap() {
  35. map = new AMap.Map("container", {
  36. viewMode: "3D", // 是否为3D地图模式
  37. zoom: 11,
  38. center: [116.397428, 39.90923],
  39. });
  40. // 设置离线地图
  41. map.setPlugins({
  42. 'AMap.Offline': {}
  43. });
  44. // 添加离线地图数据
  45. map.offline.setCity('北京');
  46. },
  47. createMap() {
  48. var view = new View({
  49. // center: transform([103.23, 35.33], "EPSG:4326", "EPSG:3857"), //地图初始中心点
  50. center: gcoord.transform(
  51. [106.67591743605254, 38.21012898330025],
  52. gcoord.WGS84,
  53. gcoord.BD09
  54. ), //地图初始中心点
  55. projection: "EPSG:4326",
  56. zoom: 4,
  57. minZoom: 1,
  58. });
  59. this.addMap("container", view);
  60. },
  61. addMap(target:any, view) {
  62. if (this.maps[target]) return;
  63. var gaodeMapLayer = new TileLayer({
  64. title: "高德地图",
  65. source: new XYZ({
  66. url: "http://wprd0{1-4}.is.autonavi.com/appmaptile?lang=zh_cn&size=1&style=7&x={x}&y={y}&z={z}",
  67. wrapX: false,
  68. }),
  69. });
  70. let map = new Map({
  71. //地图容器div的ID
  72. target,
  73. //地图容器中加载的图层
  74. layers: [gaodeMapLayer],
  75. //地图视图设置
  76. view, //同一个view
  77. });
  78. this.maps[target] = map;
  79. window.map = this.maps;
  80. console.log(window.map, "window.map");
  81. },
  82. },
  83. };
  84. </script>
  85. <style scoped>
  86. #container {
  87. width: 100%;
  88. height: 100vh;
  89. }
  90. </style>