1.步骤一:页面实现页面布局
注意:data中的mapKey需要自己去腾讯位置服务的key(自己去腾讯位置服务生成自己的key)
查找位置
import Maps from "./components/map/map.vue";
export default {
components: { Maps },
data() {
return {
form: {
longitude: "", // 经度
latitude: "", // 纬度
address: "", // 地址
},
mapKey: "xxxxx-xxxxx-xxxx-xxxx-xxxxx", // 腾讯位置服务的key(自己去腾讯位置服务生成自己的key)
};
},
methods: {
getCoordinates(e) {
console.log("地址", e);
this.form.address = e.address;
this.form.longitude = e.location.lng;
this.form.latitude = e.location.lat;
},
// 查找位置
onSearch() {
this.$refs.mapChild.searchKeyword(this.form.address);
},
},
};
.map {
width: 60%;
margin-left: 100px;
}
2.步骤二:封装地图视图组件—-components/map/map.vue
import { TMap } from "./index";
export default {
props: {
lat: {
type: Number,
default: 22.724554,
},
lon: {
type: Number,
default: 113.94152,
},
mapKey: {
tyep: String,
},
address: {
tyep: String,
},
},
data() {
return {
geocoder: undefined,
marker: null,
resultDatail: {},
};
},
created() {
this.initMap();
},
methods: {
//初始化地图
initMap() {
TMap(this.mapKey).then((qq) => {
var center = new qq.maps.LatLng(this.lat, this.lon);
var map = new qq.maps.Map(document.getElementById("container"), {
// center: center,
zoom: 15,
});
//调用地址解析类
this.geocoder = new qq.maps.Geocoder({
complete: (result) => {
map.setCenter(result.detail.location);
this.marker = new qq.maps服务器托管网.Marker({
map,
position: result.detail.location,
});
this.resultDatail = result.detail;
this.$emit("getCoordinates", result.detail);
},
});
console.log(this.address);
this.geocoder.getAddress(center);
// 开启监听点击
qq.maps.event.addListener(map, "click", (event) => {
this.marker.setMap(null);
this.marker.position = {
lat: event.latLng.getLat(),
lng: event.latLng.getLng(),
};
var coord = new qq.maps.LatLng(
event.latLng.getLat(),
event.latLng.getLng()
);
this.geocoder.getAddress(coord);
});
});
},
// 搜索地点
searchKeyword(address = "深圳") {
this.marker.setMap(null);
this.geocoder.getLocation(address);
},
},
};
3.步骤三:在封装地图视图组件中引入 —components/map/index.js
export function TMap(key) {
return new Promise(function (resolve, reject) {
window.init = function () {
re服务器托管网solve(window.qq) //关键
}
var script = document.createElement('script')
script.type = 'text/javascript'
script.src = `https://map.qq.com/api/js?v=2.exp&callback=init&key=${key}`
script.onerror = reject
document.head.appendChild(script)
})
}
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
相关推荐: 项目开源 | 基于开源WebGIS的国内疫情数据可视化平台
一、项目介服务器托管网绍 本项目使用的技术是vite+Vue3,使用ArcGIS API for js前端地图开源框架,接口数据来源weibo。 主要是对国内的疫情数据进行实时图表可视化。 2022.11.12-2022.11.17 源码——基于开源WebGI…