基于Vue+Element UI集成高德地圖的完整實踐指南

本次開發使用deepseek 簡直如虎添翼得心應手 生成模擬數據、解決報錯那真是嘎嘎地
在 Vue + Element UI 項目中引入高德地圖
具體實現步驟:
高德開放平臺:注冊賬號 → 進入控制臺 → 創建應用 → 獲取 Web端(JS API)的Key
https://lbs.amap.com/

這里需要注意:key的類型不要選錯,我第一次申請的web服務端Key,無法實現搜索具體地址功能

后來重新申請 Key為Web端(JSAPI)Key才可以

(這個錯誤 USERKEY_PLAT_NOMATCH 表示你的高德地圖 Key 與當前使用的平臺不匹配)

注冊賬號 → 應用管理 → 我的應用 → 創建應用 → 新建應用 → 添加key

// 密鑰
window._AMapSecurityConfig = {securityJsCode: '你在高德開放平臺申請的安全密鑰'
}
// keythis.AMap = await AMapLoader.load({key: '你在高德開放平臺申請的key',version: '2.0',plugins: [ // 需要使用的插件'AMap.PlaceSearch', 'AMap.AutoComplete','AMap.Geocoder','AMap.Marker']})

下載依賴

npm install @amap/amap-jsapi-loader --save

我使用的版本 "@amap/amap-jsapi-loader": "^1.0.1"

實現可搜索具體地址+可標注地點的地圖

index.vue文件

<template><div class="page"><AMap></AMap></div>
</template><script>
import AMap from './AMap.vue'export default {components: { AMap }
}
</script>

AMap.vue文件

<template><div class="map-container"><div class="map-box"><div class="search-box"><el-inputv-model="keyword"placeholder="搜索模式"prefix-icon="el-icon-search"clearable@input="handleSearch"@focus="showResults = true"></el-input><div v-show="showResults && searchResults.length > 0" class="search-results"><div v-for="item in searchResults" :key="item.id"class="result-item"@click="selectLocation(item)"><div class="name">{{ item.name }}</div><div class="address">{{ item.district }}{{ item.address }}</div></div></div></div><div id="map-container" style="width: 100%; height: 830px;"></div></div></div>
</template><script>
import AMapLoader from '@amap/amap-jsapi-loader'
import { debounce } from 'lodash'// 密鑰
window._AMapSecurityConfig = {securityJsCode: '你自個的密鑰'
}export default {name: 'AMapSearch',data() {return {map: null,AMap: null,placeSearch: null,autoComplete: null,marker: null,keyword: '',searchResults: [],showResults: false}},mounted() {this.initMap()},methods: {async initMap() {try {this.AMap = await AMapLoader.load({key: '你自個的key',version: '2.0',plugins: ['AMap.PlaceSearch', 'AMap.AutoComplete','AMap.Geocoder','AMap.Marker']})this.map = new this.AMap.Map('map-container', {viewMode: '2D',zoom: 12,center: [116.397428, 39.90923]})this.autoComplete = new this.AMap.AutoComplete({city: '全國',input: 'keyword-input'})this.placeSearch = new this.AMap.PlaceSearch({map: this.map,pageSize: 10,city: '全國'})this.map.on('click', (e) => {this.addMarker(e.lnglat)this.reverseGeocode(e.lnglat)})} catch (error) {console.error('地圖初始化失敗:', error)}},handleSearch: debounce(function() {if (!this.keyword.trim()) {this.searchResults = []return}this.autoComplete.search(this.keyword, (status, result) => {if (status === 'complete' && result.tips) {this.searchResults = result.tips.map(item => ({...item,address: Array.isArray(item.address) ? item.address[0] : item.address}))} else {this.searchResults = []console.warn('搜索失敗:', result)}})}, 500),selectLocation(item) {this.keyword = item.namethis.showResults = falseif (item.location) {const lnglat = new this.AMap.LngLat(item.location.lng, item.location.lat)this.map.setCenter(lnglat)this.addMarker(lnglat)} else if (item.district && item.address) {this.placeSearch.search(item.district + item.address, (status, result) => {if (status === 'complete' && result.poiList.pois.length) {const poi = result.poiList.pois[0]const lnglat = new this.AMap.LngLat(poi.location.lng,poi.location.lat)this.map.setCenter(lnglat)this.addMarker(lnglat)}})}},addMarker(lnglat) {if (this.marker) {this.map.remove(this.marker)}this.marker = new this.AMap.Marker({position: lnglat,icon: 'https://webapi.amap.com/theme/v1.3/markers/n/mark_b.png'})this.map.add(this.marker)this.map.setZoom(16)},reverseGeocode(lnglat) {const geocoder = new this.AMap.Geocoder()geocoder.getAddress(lnglat, (status, result) => {if (status === 'complete' && result.regeocode) {this.keyword = result.regeocode.formattedAddress}})}}
}
</script><style scoped>.map-container {position: relative;width: 100%;height: 100%;}.map-box {position: relative;width: 100%;height: 600px;}.search-box {position: absolute;top: 20px;left: 20px;z-index: 999;width: 300px;background: white;border-radius: 4px;box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);}.search-results {max-height: 300px;overflow-y: auto;border: 1px solid #ebeef5;border-top: none;border-radius: 0 0 4px 4px;}.result-item {padding: 10px;cursor: pointer;border-bottom: 1px solid #ebeef5;}.result-item:hover {background-color: #f5f7fa;}.result-item .name {font-weight: bold;margin-bottom: 5px;}.result-item .address {font-size: 12px;color: #909399;}
</style>

這次功能開發 首次完全依賴deepseek 誒嘛真香 比自己找文檔文章吭哧吭哧硬寫方便多了

ai是真乃人類之光

生成假數據炒雞方便 以后要多多用!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/95239.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/95239.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/95239.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Day50--圖論--98. 所有可達路徑(卡碼網),797. 所有可能的路徑

Day50–圖論–98. 所有可達路徑&#xff08;卡碼網&#xff09;&#xff0c;797. 所有可能的路徑 刷今天的內容之前&#xff0c;要先去《代碼隨想錄》網站&#xff0c;先看完&#xff1a;圖論理論基礎和深度優先搜索理論基礎。做完之后可以看題解。有余力&#xff0c;把廣度優先…

Python 異常捕獲

一、獲取未知錯誤try:# 相關處理邏輯 異常后面輸出print(輸入信息……) except Exception as e:print(未知錯誤,e)二、獲取已知錯誤except 錯誤單詞&#xff08;來源于錯誤信息的第一個單詞&#xff09;多個已知錯誤使用 except XXXXX:try:# 相關處理邏輯 異常后面輸出print…

RIOT、RT-Thread 和 FreeRTOS 是三種主流的實時操作系統

RIOT、RT-Thread 和 FreeRTOS 是三種主流的實時操作系統&#xff08;RTOS&#xff09;&#xff0c;專為嵌入式系統和物聯網&#xff08;IoT&#xff09;設備設計。它們在架構、功能、生態和應用場景上有顯著差異&#xff0c;以下是詳細對比&#xff1a;1. 架構與設計理念特性RI…

【FAQ】Win11創建資源不足繞開微軟賬號登錄

Win11安裝資源限制 因為 Windows 11 有兩項強制檢測 VMware 8 默認沒提供&#xff1a; TPM 2.0&#xff08;可信平臺模塊&#xff09;Secure Boot&#xff08;安全啟動&#xff09; 一步到位解決辦法&#xff08;官方兼容方式&#xff09; 關閉虛擬機電源編輯虛擬機設置 選項 →…

Docker使用----(安裝_Windows版)

一、Docker Docker 鏡像就像是一個軟件包&#xff0c;里面包括了應用程序的代碼、運行所需的庫和工具、配置文件等等&#xff0c;所有這些都打包在一起&#xff0c;以確保應用程序在不同的計算機上運行時&#xff0c;都能保持一致性。 可以把 Docker 鏡像想象成一個軟件安裝文件…

91、23種經典設計模式

設計模式是軟件設計中反復出現的解決方案的模板&#xff0c;用于解決特定問題并提高代碼的可維護性、可擴展性和可復用性。23種經典設計模式可分為創建型、結構型和行為型三大類&#xff0c;以下是具體分類及模式概述&#xff1a; 一、創建型模式&#xff08;5種&#xff09; 關…

Illustrator總監級AI魔法:一鍵讓低清logo變矢量高清,徹底告別手動描摹!

在海外從事設計十幾年&#xff0c;我敢說&#xff0c;每個設計師都經歷過一種“史詩級”的折磨&#xff1a;客戶發來一個像素低得感人、邊緣模糊不清的JPG格式Logo&#xff0c;然后要求你把它用在巨幅海報或者高清視頻上。這意味著什么&#xff1f;意味著我們要打開Illustrator…

各種 dp 刷題下

6.#8518 杰瑞征途 / 洛谷 P4072 征途 題意 Pine 開始了從 SSS 地到 TTT 地的征途。從 SSS 地到 TTT 地的路可以劃分成 nnn 段&#xff0c;相鄰兩段路的分界點設有休息站。Pine 計劃用 mmm 天到達 TTT 地。除第 mmm 天外&#xff0c;每一天晚上 Pine 都必須在休息站過夜。所以…

本地WSL部署接入 whisper + ollama qwen3:14b 總結字幕增加利用 Whisper 分段信息,全新 Prompt功能

1. 實現功能 M4-3: 智能后處理 - 停頓感知增強版 (終極版) 本腳本是 M4-3 的重大升級&#xff0c;引入了“停頓感知”能力&#xff1a; 利用 Whisper 分段信息: 將 Whisper 的 segments 間的自然停頓作為強信號 ([P]) 提供給 LLM。全新 Prompt: 設計了專門的 Prompt&#xff0c…

微算法科技(NASDAQ:MLGO)開發經典增強量子優化算法(CBQOA):開創組合優化新時代

近年來&#xff0c;量子計算在組合優化領域的應用日益受到關注&#xff0c;各類量子優化算法層出不窮。然而&#xff0c;由于現階段量子硬件的局限性&#xff0c;如何充分利用已有的經典計算能力來增強量子優化算法的表現&#xff0c;成為當前研究的重要方向。基于此&#xff0…

功能、延遲、部署、成本全解析:本地化音視頻 SDK 對比 云端方案

引言 在構建實時音視頻系統時&#xff0c;技術選型往往決定了項目的天花板。開發者面臨的第一個關鍵抉擇&#xff0c;就是是選擇完全可控的本地化音視頻內核&#xff0c;還是依賴云廠商的實時音視頻服務。 以大牛直播SDK&#xff08;SmartMediaKit&#xff09;為代表的本地部…

微調入門:為什么微調

歡迎來到啾啾的博客&#x1f431;。 記錄學習點滴。分享工作思考和實用技巧&#xff0c;偶爾也分享一些雜談&#x1f4ac;。 有很多很多不足的地方&#xff0c;歡迎評論交流&#xff0c;感謝您的閱讀和評論&#x1f604;。 目錄1 什么時候我們需要微調呢&#xff1f;1.1 微調的…

3、匹配一組字符

在本章里&#xff0c;你將學習如何與字符集合打交道。與可以匹配任意單個字符的.字符&#xff08;參見第2章&#xff09;不同&#xff0c;字符集合能匹配特定的字符和字符區間。3.1 匹配多個字符中的某一個第2章介紹的.?字符&#xff0c;可以匹配任意單個字符。當時在最后一個…

強化學習在量化交易中的禁區:回測表現好實盤虧錢的4個原因

引言 “為什么你的強化學習策略在回測中年化 50%,到了實盤卻三個月虧光本金?” 如果你做過量化交易,尤其是嘗試用強化學習(Reinforcement Learning, RL),這種場景可能并不陌生: 回測曲線平滑向上,最大回撤可控,勝率穩定 模型參數和架構調到極致,每次迭代都帶來更高的…

代碼隨想錄day62圖論11

文章目錄Floyd 算法精講A * 算法精講 &#xff08;A star算法&#xff09;Floyd 算法精講 題目鏈接 文章講解 #include <iostream> #include <vector> #include <algorithm> using namespace std;int main() {int n, m;cin >> n >> m; // 輸入…

【18】OpenCV C++實戰篇——【項目實戰】OpenCV C++ 精準定位“十字刻度尺”中心坐標,過濾圖片中的干擾,精準獲取十字交點坐標

文章目錄1 問題及分析2 多尺度霍夫直線 與 漸進概率霍夫線段 細節對比2.1 多尺度霍夫直線 HoughLines2.2 漸進概率霍夫線段 HoughLinesP2.3 HoughLines 和 HoughLinesP 所求結果細節對比2.4 為什么 HoughLinesP 直線兩端沒有呈放射狀態呢&#xff1f;直線總是平行嗎&#xff1f…

云原生應用的DevOps2(Jenkins滲透場景)

結論 Jenkins歷史漏洞 Jenkins未授權訪問 登錄后命令執行 Jenkins代碼倉庫信息 Jenkins服務器建立多臺服務器信任連接 背景 目前我看到紅隊人員的現狀,不管是什么系統就是拿Shell,拿權限,然后把這臺機器當作跳板繼續橫向其它機器。而Jenkins在內網中是經常能夠遇到的,…

Gradle 配置教程:與 Maven 對比詳解(含完整遷移指南)

一、基礎對比&#xff1a;Gradle vs Maven1.1 核心特性對比維度MavenGradle配置語言XML (冗長)Groovy/Kotlin DSL (簡潔靈活)構建速度較慢(全量構建)快2-10倍(增量構建緩存)多模塊管理<modules> <parent>settings.gradle project()依賴管理<dependencies>d…

pcl 按比例去除點云的噪點

之前halcon3d中是這么做的&#xff1b;1&#xff0c;先查找點云中每個點最近第15個最近點的距離2&#xff0c;將距離進行排序3&#xff0c;求排序后在距離數組70%位置的距離 d4&#xff0c;篩選點云中每個點半徑為d&#xff0c;近鄰點的數量大于14的點用pcl實現的代碼如下&…

站在Vue的角度,對比鴻蒙開發中的遞歸渲染

第三類 引用數據的操作 引用數據類型 又叫復雜數類型&#xff0c; 典型的代表是對象和數組&#xff0c;而數組和對象往往又嵌套到到一起 普通數組和對象的使用 vue中使用for循環遍歷 <template><div>我是關于頁面<div v-for"item in arr">{{ i…