| 
					
				 | 
			
			
				@@ -1,92 +1,143 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 <template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	<view id="container" class=""></view> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  <view id="container" class=""></view> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 <script> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	import "ol/ol.css"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	import gcoord from "gcoord"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	import Map from "ol/Map"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	import View from "ol/View"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	import TileLayer from "ol/layer/Tile"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	import OSM from 'ol/source/OSM'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	import XYZ from 'ol/source/XYZ' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	// const getUserInfo = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	// 	apiUserInfo().then(res => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	// 		console.log(res); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	// 		userinfo.value = res.data 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	// 	}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	// } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	let map: any = null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		name: "map-view", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		data() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				maps: {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		mounted() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			// this.initAMap(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			this.createMap(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		unmounted() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			map && map.destroy(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		methods: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			initAMap() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				map = new AMap.Map("container", { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					viewMode: "3D", // 是否为3D地图模式 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					zoom: 11, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					center: [116.397428, 39.90923], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				// 设置离线地图 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				map.setPlugins({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					'AMap.Offline': {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				// 添加离线地图数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				map.offline.setCity('北京'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			createMap() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				var view = new View({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					// center: transform([103.23, 35.33], "EPSG:4326", "EPSG:3857"), //地图初始中心点 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					center: gcoord.transform( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						[106.67591743605254, 38.21012898330025], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						gcoord.WGS84, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						gcoord.BD09 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					), //地图初始中心点 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					projection: "EPSG:4326", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					zoom: 4, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					minZoom: 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				this.addMap("container", view); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			addMap(target:any, view) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				if (this.maps[target]) return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				var gaodeMapLayer = new TileLayer({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					title: "高德地图", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					source: new XYZ({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						url: "http://wprd0{1-4}.is.autonavi.com/appmaptile?lang=zh_cn&size=1&style=7&x={x}&y={y}&z={z}", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						wrapX: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				let map = new Map({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					//地图容器div的ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					target, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					//地图容器中加载的图层 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					layers: [gaodeMapLayer], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					//地图视图设置 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					view, //同一个view 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				this.maps[target] = map; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				window.map = this.maps; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				console.log(window.map, "window.map"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import "ol/ol.css"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import gcoord from "gcoord"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { transform } from "ol/proj.js"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import Map from "ol/Map"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import View from "ol/View"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// import TileLayer from "ol/layer/Tile"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import XYZ from "ol/source/XYZ"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import Tile from "ol/layer/Tile"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// const getUserInfo = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// 	apiUserInfo().then(res => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// 		console.log(res); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// 		userinfo.value = res.data 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// 	}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+let map: any = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  name: "map-view", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  data() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      maps: {}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  mounted() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // this.initAMap(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    this.createMap(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  unmounted() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    map && map.destroy(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  methods: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    initAMap() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      map = new AMap.Map("container", { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        viewMode: "3D", // 是否为3D地图模式 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        zoom: 11, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        center: [116.397428, 39.90923], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // 设置离线地图 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      map.setPlugins({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        "AMap.Offline": {}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // 添加离线地图数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      map.offline.setCity("北京"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    createMap() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      var view = new View({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        center: transform([103.23, 35.33], "EPSG:4326", "EPSG:3857"), //地图初始中心点 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // center: gcoord.transform([103.23, 35.33], "EPSG:4326", "EPSG:3857"), //地图初始中心点 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 	[106.67591743605254, 38.21012898330025], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 	gcoord.WGS84, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 	gcoord.BD09 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // ), //地图初始中心点 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        projection: "EPSG:4326", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        zoom: 4, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        minZoom: 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.addMap("container", view); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    addMap(target: any, view) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (this.maps[target]) return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // var gaodeMapLayer = new TileLayer({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // 	title: "高德地图", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // 	source: new XYZ({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // 		url: "http://wprd0{1-4}.is.autonavi.com/appmaptile?lang=zh_cn&size=1&style=7&x={x}&y={y}&z={z}", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // 		wrapX: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // 	}), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      var key = "12df6e32906dbb916fad14dc65ebdbf8"; // 请替换成你的key 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // 矢量底图 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      var vecLayer = new Tile({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        source: new XYZ({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          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, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // 矢量标注 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      var cvaLayer = new Tile({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        source: new XYZ({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          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=" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            key, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // 影像底图 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      var imgLayer = new Tile({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        source: new XYZ({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          url: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "http://t0.tianditu.gov.cn/img_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=img&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            key, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  // 影像标注 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      var imgCiaLayer = new Tile({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        source: new XYZ({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          url: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "http://t0.tianditu.gov.cn/cia_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cia&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            key, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // 地形晕染 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      var terLayer = new Tile({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        source: new XYZ({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          url: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "http://t0.tianditu.gov.cn/ter_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=ter&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            key, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // 地形标注层 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      var ctaLayer = new Tile({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        source: new XYZ({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          url: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "http://t0.tianditu.gov.cn/cta_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cta&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}&tk=" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            key, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      let map = new Map({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //地图容器div的ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        target, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //地图容器中加载的图层 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // layers: [gaodeMapLayer], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        layers: [vecLayer, cvaLayer], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //地图视图设置 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        view, //同一个view 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.maps[target] = map; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      window.map = this.maps; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      console.log(window.map, "window.map"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 </script> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 <style scoped> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	#container { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		width: 100%; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		height: 100vh; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#container { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  width: 100%; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  height: 100vh; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 </style> 
			 |