1.首先在index.html引入高德地图的秘钥。如图:
注意:如果使用关键字搜索功能要加上 plugin=AMap.Autocomplete,AMap.PlaceSearch
,否则功能无法使用,并会报错
2. 定位功能,代码如下:
const map = new AMap.Map(this.$refs.container, { resizeEnable: true }) // 创建Map实例 const options = { 'showButton': true, // 是否显示定位按钮 'buttonPosition': 'LB', // 定位按钮的位置 'buttonOffset': new AMap.Pixel(10, 20), // 定位按钮距离对应角落的距离 'showMarker': true, // 是否显示定位点 'showCircle': true, // 是否显示定位精度圈 'circleOptions': {// 定位精度圈的样式 'strokeColor': '#0093FF', 'noSelect': true, 'strokeOpacity': 0.5, 'strokeWeight': 1, 'fillColor': '#02B0FF', 'fillOpacity': 0.25 }, zoomToAccuracy: true // 定位成功后是否自动调整地图视野到定位点 } AMap.plugin(['AMap.Geolocation'], function() { const geolocation = new AMap.Geolocation(options) map.addControl(geolocation) geolocation.getCurrentPosition() }) //下面是点击地图时加入mark。注意:要在绑定事件前记录this,否则在绑定的回调方法中使用this将是该事件的this const _this = this AMap.event.addListener(map, 'click', function(e) { map.clearMap() // 清除地图上所有添加的覆盖物 new AMap.Marker({ position: e.lnglat, map: map }) _this.handleMap(e.lnglat.getLng(), e.lnglat.getLat()) })
3.关键字搜索功能
html部分代码(注意ref,id,class的名字要和官网保持一致,否则可能出不来想要的效果):
<template> <div class="map-chart"> <div id="container" ref="container" /> <div id="myPageTop"> <table> <tr> <td> <label>请输入关键字:</label> </td> </tr> <tr> <td> <input id="tipinput"> </td> </tr> </table> </div> </div> </template>
script代码:
export default { name: 'Map', props: [], data() { return { placeSearch: null } }, mounted() { this.mapInit() }, methods: { mapInit() { const map = new AMap.Map(this.$refs.container, { resizeEnable: true }) // 创建Map实例 const options = { 'showButton': true, // 是否显示定位按钮 'buttonPosition': 'LB', // 定位按钮的位置 'buttonOffset': new AMap.Pixel(10, 20), // 定位按钮距离对应角落的距离 'showMarker': true, // 是否显示定位点 'showCircle': true, // 是否显示定位精度圈 'circleOptions': {// 定位精度圈的样式 'strokeColor': '#0093FF', 'noSelect': true, 'strokeOpacity': 0.5, 'strokeWeight': 1, 'fillColor': '#02B0FF', 'fillOpacity': 0.25 }, zoomToAccuracy: true // 定位成功后是否自动调整地图视野到定位点 } //注意:要在绑定事件前记录this,否则在绑定的回调方法中使用this将是该事件的this const _this = this // 输入提示 const autoOptions = { input: 'tipinput' } const auto = new AMap.Autocomplete(autoOptions) this.placeSearch = new AMap.PlaceSearch({ map: map }) // 构造地点查询类 AMap.event.addListener(auto, 'select', this.select)// 注册监听,当选中某条记录时会触发 //点击搜索出的mark点事件 AMap.event.addListener(this.placeSearch, 'markerClick', function(e) { _this.$emit('bMapDate', e.data.location.lng, e.data.location.lat) }) }, select(e) { this.placeSearch.setCity(e.poi.adcode) this.placeSearch.search(e.poi.name) // 关键字查询查询 }, handleMap(o, a) { this.$emit('bMapDate', o, a) } } } </script>
整体完成代码:
<template> <div class="map-chart"> <div id="container" ref="container" /> <div id="myPageTop"> <table> <tr> <td> <label>请输入关键字:</label> </td> </tr> <tr> <td> <input id="tipinput"> </td> </tr> </table> </div> </div> </template> <script> export default { name: 'Map', props: [], data() { return { placeSearch: null } }, mounted() { this.mapInit() }, methods: { mapInit() { const map = new AMap.Map(this.$refs.container, { resizeEnable: true }) // 创建Map实例 const options = { 'showButton': true, // 是否显示定位按钮 'buttonPosition': 'LB', // 定位按钮的位置 'buttonOffset': new AMap.Pixel(10, 20), // 定位按钮距离对应角落的距离 'showMarker': true, // 是否显示定位点 'showCircle': true, // 是否显示定位精度圈 'circleOptions': {// 定位精度圈的样式 'strokeColor': '#0093FF', 'noSelect': true, 'strokeOpacity': 0.5, 'strokeWeight': 1, 'fillColor': '#02B0FF', 'fillOpacity': 0.25 }, zoomToAccuracy: true // 定位成功后是否自动调整地图视野到定位点 } AMap.plugin(['AMap.Geolocation'], function() { const geolocation = new AMap.Geolocation(options) map.addControl(geolocation) geolocation.getCurrentPosition() }) const _this = this AMap.event.addListener(map, 'click', function(e) { map.clearMap() // 清除地图上所有添加的覆盖物 new AMap.Marker({ position: e.lnglat, map: map }) _this.handleMap(e.lnglat.getLng(), e.lnglat.getLat()) }) // 输入提示 const autoOptions = { input: 'tipinput' } const auto = new AMap.Autocomplete(autoOptions) this.placeSearch = new AMap.PlaceSearch({ map: map }) // 构造地点查询类 AMap.event.addListener(auto, 'select', this.select)// 注册监听,当选中某条记录时会触发 AMap.event.addListener(this.placeSearch, 'markerClick', function(e) { _this.$emit('bMapDate', e.data.location.lng, e.data.location.lat) }) }, select(e) { this.placeSearch.setCity(e.poi.adcode) this.placeSearch.search(e.poi.name) // 关键字查询查询 }, handleMap(o, a) { this.$emit('bMapDate', o, a) } } } </script> <style scoped> .map-chart{ position: relative; margin-bottom:15px; width: 100%; height: 400px; border: 1px #dddddd solid; } /deep/ .amap-logo,/deep/ .amap-copyright { display: none!important; } #container { margin-bottom:15px; width: 100%; height: 400px; border: 1px #dddddd solid; z-index: 99999999; } .button-group { position: absolute; bottom: 20px; right: 20px; font-size: 12px; padding: 10px; } .button-group .button { height: 28px; line-height: 28px; background-color: #0D9BF2; color: #FFF; border: 0; outline: none; padding-left: 5px; padding-right: 5px; border-radius: 3px; margin-bottom: 4px; cursor: pointer; } .button-group .inputtext { height: 26px; line-height: 26px; border: 1px; outline: none; padding-left: 5px; padding-right: 5px; border-radius: 3px; margin-bottom: 4px; cursor: pointer; } #tip { background-color: #fff; padding-left: 10px; padding-right: 10px; position: absolute; font-size: 12px; right: 10px; top: 20px; border-radius: 3px; border: 1px solid #ccc; line-height: 30px; } .amap-info-content { font-size: 12px; } #myPageTop { position: absolute; top: 5px; right: 10px; background: #fff none repeat scroll 0 0; border: 1px solid #ccc; margin: 10px auto; padding:6px; font-family: "Microsoft Yahei", "微软雅黑", "Pinghei"; font-size: 14px; z-index: 99999999; } #myPageTop label { margin: 0 20px 0 0; color: #666666; font-weight: normal; } #myPageTop input { width: 170px; } #myPageTop .column2{ padding-left: 25px; } </style>
由于我在项目中使用了dialog,搜索出来的结果会在蒙版后面显示,去掉scope和加/deep/、>都没用,最后在index.html加样式。代码如下:
<style type="text/css"> .amap-sug-result { z-index: 2999!important; } </style>
效果:
以上就是踩了无数坑总结出来的经验。。。
华山资源网 Design By www.eoogi.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
华山资源网 Design By www.eoogi.com
暂无评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
2024年11月16日
2024年11月16日
- 张敬轩2005《我的梦想我的路》几何娱乐[WAV+CUE][1G]
- 群星《人到四十男儿情(SRS+WIZOR)》[原抓WAV+CUE]
- 马久越《上善若水HQCDII》[低速原抓WAV+CUE]
- 龚玥《女儿情思》6N纯银SQCD【WAV+CUE】
- 张惠妹《你在看我吗》大碟15 金牌大风[WAV+CUE][1G]
- 群星《左耳·听见爱情》星文唱片[WAV+CUE][1G]
- 群星《抖音嗨疯-DISCO英文版》[WAV+CUE][1G]
- 群星.1990-情义无价(TP版)【中唱】【WAV+CUE】
- 马兆骏.1990-心情·七月【滚石】【WAV+CUE】
- 方伊琪.1979-沙鸥(LP版)【星岛全音】【WAV+CUE】
- 蔡琴《醇厚嗓音》6N纯银SQCD【WAV+CUE】
- 陈曦《遇见HQCD》[WAV+CUE]
- 大提琴-刘欣欣《爱的问候》HDCD[WAV+CUE]
- 周耀辉/邓慧中《从什么时候开始》[320K/MP3][95.71MB]
- 周耀辉/邓慧中《从什么时候开始》[FLAC/分轨][361.29MB]