• 高德地图系列(三):vue项目利用高德地图实现地址搜索功能


    目录

    第一章 效果图

    第二章 源代码

    第一章 效果图

    • 高德地图为我们提供了搜索联想,以及搜索结果标记,该案例已将基础功能打通,后续我们肯定还会对功能有所修改,想实现自己想要的效果,基本上看高德地图文档对着改就好了(跟我们用别的工具一样做即可) 

    第二章 源代码

    • 代码描述如下:
    1. <script>
    2. import AMapLoader from '@amap/amap-jsapi-loader'
    3. export default {
    4. data() {
    5. return {
    6. map: null,
    7. placeSearch: null,
    8. mapModule: null // AMap
    9. }
    10. },
    11. mounted() {
    12. window._AMapSecurityConfig = {
    13. securityJsCode: 'key密钥' // 申请key对应的秘钥 -> 注意了,如果不搭配密钥使用,搜索将没有结果
    14. }
    15. // 初始化地图
    16. this.initAMap()
    17. },
    18. destroyed() {
    19. // 销毁地图
    20. this.map.destroy()
    21. },
    22. methods: {
    23. // 初始化地图函数
    24. initAMap() {
    25. const _this = this
    26. AMapLoader.load({
    27. key: '申请的key', // 申请好的Web端开发者Key,首次调用 load 时必填
    28. version: '2.0', // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
    29. plugins: []
    30. })
    31. .then((AMap) => {
    32. // 保存AMap实例
    33. _this.mapModule = AMap
    34. const map = new AMap.Map('container', {
    35. // 设置地图容器id
    36. viewMode: '3D', // 默认2d地图模式
    37. zoom: 12, // 初始化地图级别
    38. zooms: [5, 30],
    39. // 可以设置初始化当前位置
    40. center: [116.397428, 39.90923],
    41. resizeEnable: true
    42. })
    43. // 添加控件
    44. AMap.plugin(
    45. [
    46. 'AMap.ElasticMarker',
    47. 'AMap.Scale',
    48. 'AMap.ToolBar',
    49. 'AMap.HawkEye',
    50. 'AMap.MapType',
    51. 'AMap.Geolocation',
    52. 'AMap.AutoComplete',
    53. 'AMap.PlaceSearch'
    54. ],
    55. () => {
    56. map.addControl(new AMap.ElasticMarker())
    57. map.addControl(new AMap.Scale())
    58. map.addControl(new AMap.ToolBar())
    59. map.addControl(new AMap.HawkEye())
    60. map.addControl(new AMap.MapType())
    61. map.addControl(new AMap.Geolocation())
    62. }
    63. )
    64. _this.map = map
    65. // 搜索功能
    66. _this.toSearch()
    67. })
    68. .catch((e) => {
    69. console.log(e)
    70. })
    71. },
    72. toSearch() {
    73. const _this = this
    74. // 实例化AutoComplete
    75. const autoOptions = {
    76. // input 为绑定输入提示功能的input的DOM ID,注意这个id要个搜索输入框的id一致
    77. input: 'tipinput'
    78. }
    79. const autoComplete = new _this.mapModule.AutoComplete(autoOptions)
    80. autoComplete.on('select', _this.select)// 注册监听,当选中某条记录时会触发
    81. },
    82. select(e) {
    83. const _this = this
    84. // 无需再手动执行search方法,autoComplete会根据传入input对应的DOM动态触发search
    85. // { map: _this.map } ==> 这个对象是能配置的 --> 根据官方文档配置即可,需要什么配置什么
    86. const placeSearch = new _this.mapModule.PlaceSearch({
    87. map: _this.map
    88. })
    89. placeSearch.setCity(e.poi.adcode)
    90. placeSearch.search(e.poi.name) // 关键字查询查询
    91. }
    92. }
    93. script>
    94. <style lang='less' scoped>
    95. #container {
    96. padding: 0px;
    97. margin: 0px;
    98. width: 100%;
    99. height: 900px;
    100. }
    101. style>
    •  注意事项:
    1. 需要搭配申请key和的密钥key一起使用
    2. 地图2.0使用的是AMap.AutoComplete记得区分1.x的Autocomplete
    3. 高德地图组件已经能实现搜索事件了,只需要输入框id对应填好即可
    4. 搜索功能还有许多功能,我们可以根据给的典例了解参数(小编认为上面的解释比接口文档更详细),实例文档如下:
    5. 接口文档如下:

     示例文档:获取搜索数据-POI搜索-示例中心-JS API 2.0 示例 | 高德地图API

     

    接口文档参考手册-地图 JS API 2.0 | 高德地图API 

  • 相关阅读:
    ApplicatioinRunner vs CommandLineRunner
    windows系统中开发的GO程序生成docker镜像并部署到阿里云服务(linux系统)的操作说明
    国家开放大学 模拟试题 训练
    在.NET 8 RC1 版本中 MAUI、ASP.NET Core 和 EF8 的新特性
    混迹职场10多年的数据开发老鸟,居然被一个职场新人上了一课
    Spring Boot集成ElasticsearchRepository
    详解23种设计模式——工厂模式
    第二周 day03
    计算机毕业设计Java电子存证系统(源码+系统+mysql数据库+lw文档)
    scratch 编程 + 小学数学
  • 原文地址:https://blog.csdn.net/qq_45796592/article/details/134294343