百度地圖添加搜索懸浮窗功能

来源:https://www.cnblogs.com/Byme/archive/2018/12/14/10118577.html
-Advertisement-
Play Games

來自:https://www.2cto.com/kf/201701/587448.html 侵刪 關鍵字輸入提示詞條 ...


來自:https://www.2cto.com/kf/201701/587448.html 侵刪


<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <style type="text/css"> body, html{width: 100%;height: 100%;margin:0;font-family:"微軟雅黑";font-size:14px;} #l-map{height:300px;width:100%;} #r-result{width:100%;} </style> <!-- <script type="text/javascript" src="https://api.map.baidu.com/api?v=1.4"></script> --> <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=密匙"></script> <title>關鍵字輸入提示詞條</title> </head> <body> <p id="l-map"> </p> </body> </html> <script type="text/javascript"> // 百度地圖API功能 function G(id) { return document.getElementById(id); } var map = new BMap.Map("l-map"); map.centerAndZoom(new BMap.Point(120.714537, 30.122469), 9); // 初始化地圖,設置城市和地圖級別。 // 定義一個控制項類,即function function ZoomControl() { this.defaultAnchor = BMAP_ANCHOR_TOP_LEFT; this.defaultOffset = new BMap.Size(10, 10); } // 通過JavaScript的prototype屬性繼承於BMap.Control ZoomControl.prototype = new BMap.Control(); // 自定義控制項必須實現自己的initialize方法,並且將控制項的DOM元素返回 // 在本方法中創建個p元素作為控制項的容器,並將其添加到地圖容器中 ZoomControl.prototype.initialize = function(map){ // 創建一個DOM元素 var p = document.createElement("p"); p.innerHTML = '<p id="r-result">搜索地址:<input type="text" id="suggestId" size="20" value="百度" style="width:150px;" /></p><p id="searchResultPanel" style="border:1px solid #C0C0C0;width:150px;height:auto; display:none;"></p>'; // 添加DOM元素到地圖中 map.getContainer().appendChild(p); // 將DOM元素返回 return p; } // 創建控制項 var myZoomCtrl = new ZoomControl(); // 添加到地圖當中 map.addControl(myZoomCtrl); var ac = new BMap.Autocomplete( //建立一個自動完成的對象 {"input" : "suggestId" ,"location" : map }); ac.addEventListener("onhighlight", function(e) { //滑鼠放在下拉列表上的事件 var str = ""; var _value = e.fromitem.value; var value = ""; if (e.fromitem.index > -1) { value = _value.province + _value.city + _value.district + _value.street + _value.business; } str = "FromItem<br />index = " + e.fromitem.index + "<br />value = " + value; value = ""; if (e.toitem.index > -1) { _value = e.toitem.value; value = _value.province + _value.city + _value.district + _value.street + _value.business; } str += "<br />ToItem<br />index = " + e.toitem.index + "<br />value = " + value; G("searchResultPanel").innerHTML = str; }); var myValue; ac.addEventListener("onconfirm", function(e) { //滑鼠點擊下拉列表後的事件 var _value = e.item.value; myValue = _value.province + _value.city + _value.district + _value.street + _value.business; G("searchResultPanel").innerHTML ="onconfirm<br />index = " + e.item.index + "<br />myValue = " + myValue; setPlace(); }); function setPlace(){ map.clearOverlays(); //清除地圖上所有覆蓋物 function myFun(){ var pp = local.getResults().getPoi(0).point; //獲取第一個智能搜索的結果 map.centerAndZoom(pp, 14); console.log('pp',pp) map.addOverlay(new BMap.Marker(pp)); //添加標註 } var local = new BMap.LocalSearch(map, { //智能搜索 onSearchComplete: myFun }); local.search(myValue); } </script>

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 所有基礎課程鏈接: 1.JavaScript基礎視頻教程總結(001-010章) 2.JavaScript基礎視頻教程總結(011-020章) 3. JavaScript基礎視頻教程總結(021-030章) 4. JavaScript基礎視頻教程總結(031-040章) 5. JavaScript基 ...
  • 往其祖上到三代,祖孫三代一起進名單,全部收錄起來。 為方便查閱,下文元字元閱讀方式直接是 “序號 字元 :解釋” \ :將下一個字元標記為一個特殊字元、或一個原義字元、或一個 向後引用、或一個八進位轉義符。例如,'n' 匹配字元 "n"。'\n' 匹配一個換行符。序列 '\\' 匹配 "\" 而 " ...
  • 今天項目中碰到了這個問題,在網路上試圖找了一下別人的見解,然後得出自己的淺見。 引用: http://blog.sina.com.cn/s/blog_9342cd570102v3pr.html https://segmentfault.com/q/1010000005710307/a-1020000 ...
  • 前言 使用layui的圖片懶載入,發現未載入的圖片沒有loading占點陣圖,顯示的是裂圖,看著不是很好。找了一些解決方法我統一記錄一下。 layui圖片懶載入使用方法 loading占點陣圖實現方法 img標簽src為loading占點陣圖的地址,lay-src為正圖地址,圖片懶載入時會替換src 修改 ...
  • 不管是react還是vue,父級組件與子組件的通信都是通過props來實現的,在vue中父組件的props遵循的是單向數據流,用官方的話說就是,父級的props的更新會向下流動到子組件中,反之則不行。也就是說,子組件不應該去修改props。但實際開發過程中,可能會有一些情況試圖去修改props數據: ...
  • 前端性能指標,大多有TTFB ,首屏,首次可交互時間等 相關的文章已經有很多,細節這裡就不多說了,可參考文末資料 總體來說,需要知道瀏覽器(新的)給我們提供了 Performance API,使用這個屬性,我們可以得到一系列跟性能相關的數據 結合各個時間點的意義,我們可以計算出關鍵的耗時指標 看看下 ...
  • function changeFrameHeight(){ var ifm= document.getElementById("myiframe"); ifm.height=document.documentElement.clientHeight; } window.onresize=functi... ...
  • 作為一個豬腦子,請時時刻刻記住了,es6一行代碼去重是 var a = [1,2,2,2,2,3,3,3,3,3,5,5,55,6,,6,66,,6,8,4,8,45,5] console.log(new Set(a)) //一臉秀死面試官 這是其中一個方法 敲黑板!!!...(三點運算符)只是純粹 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...