首頁 web前端 js教程 百度地圖為map加入右鍵選單(判斷是否為marker)_javascript技巧

百度地圖為map加入右鍵選單(判斷是否為marker)_javascript技巧

May 16, 2016 pm 03:12 PM
右鍵選單

廢話不多說了,直接給大家貼程式碼了。

js:

var s;//经度
var w;//纬度
map.addEventListener("rightclick",function(e){
if(e.overlay){//判断右键单击的是否是marker
}else{
s = e.point.lng;//经度
w = e.point.lat;//维度
RightClick();//右键单击map出现右键菜单事件
}
});
//右键单击map出现右键菜单事件
function RightClick(){
//alert('你点击的是地图');
var createMarker = function(map){//右键更新站名
if (confirm("要新建站点吗?")){
if(true){
$(".AllSetMassage").show();
}
} 
};
var markerMenu=new BMap.ContextMenu();
markerMenu.addItem(new BMap.MenuItem('新建站点',createMarker.bind(map)));
map.addContextMenu(markerMenu);//给标记添加右键菜单
} 
登入後複製

效果:

右鍵點選map(非marker)


右鍵marker:

PS:百度地圖為多個marker加入右鍵選單(刪除、更新)

js:

$.getJSON("./GetStationPlaceServlet",function(json){ 
for(var i=;i<json.length;i++){
var obj = eval(json);
//获取经纬度
fStationlon = parseFloat(obj[i].Stationlon);
fStationlat = parseFloat(obj[i].Stationlat); 
var pt = new BMap.Point(fStationlon,fStationlat);
var myIcon = new BMap.Icon("photo/station.png",new BMap.Size(,),{ anchor: new BMap.Size(, ) });
var marker = new BMap.Marker(pt,{icon:myIcon}); // 创建标注
map.addOverlay(marker); //将标注添加到地图中
var strRes = parseFloat(obj[i].StationId);
addClickHandler(strRes,marker);//左键单击marker事件
RightClickHandler(strRes,marker);//右键单击marker出现右键菜单事件
RightClick();//右键地图出现右键菜单事件
}
});
//右键单击marker出现右键菜单事件
function RightClickHandler(stationId,marker){
var removeMarker = function(e,ee,marker){//右键删除站点
var json={
"StationId":stationId,
};
if (confirm("要删除站点"+stationId+"吗?")){
if(true){
$.getJSON("./DeleteStationServlet",{json:JSON.stringify(json)},function(json){
if(json.result==true){
alert("删除站点"+stationId+"成功!");
map.removeOverlay(marker); //将地图中的标记删除
} 
});
}
} 
};
var updateMarker = function(marker){//右键更新站名
if (confirm("要修改站点"+stationId+"的站名吗?")){
if(true){
$(".AllUpdateMassage").show();
$("#stationId").val(stationId);
}
} 
};
var markerMenu=new BMap.ContextMenu();
markerMenu.addItem(new BMap.MenuItem('删除站点',removeMarker.bind(marker)));
markerMenu.addItem(new BMap.MenuItem('修改站名',updateMarker.bind(marker)));
marker.addContextMenu(markerMenu);//给标记添加右键菜单
}
//鼠标左键单击marker事件
function addClickHandler(stationId,marker){
marker.addEventListener("click",function(e){ 
var p = marker.getPosition(); //获取marker的位置
var staId={
"StationId":stationId,
};
$.getJSON("./GetStationInfoServlet",{json:JSON.stringify(staId)},function(json){
for(var i=;i<json.length;i++){
var obj = eval(json);
stationName = obj[i].stationName;
var content = "站点编号:"+stationId+"<br/>"+ "站点名称:"+stationName;
openInfo(content,e);
}
});
});
}
//左键单击marker弹出窗口事件
function openInfo(content,e){
var p = e.target;
var point = new BMap.Point(p.getPosition().lng, p.getPosition().lat);
var infoWindow = new BMap.InfoWindow(content,opts); // 创建信息窗口对象 
map.openInfoWindow(infoWindow,point); //开启信息窗口
}
//修改站点站名
function update(){
var stationId=$("#stationId").val();//编号
var stationName=$(".AllUpdateMassage_name").val();//名字
var json={
"StationId":stationId,
"StationName":stationName
}; 
$.getJSON("./UpdateStationServlet",{json:JSON.stringify(json)},function(json){
if(json.result==true){
alert("站点"+stationId+"站名修改成功!");
$(".AllUpdateMassage").hide();
} 
else{
alert("失败!");
}
});
}
登入後複製

效果圖:


地圖上和資料庫中都已刪除此點資訊:

我在實現這個時,發現有人只能在一個marker上添加右鍵選單。我這個不存在這個問題。原理好像是關於閉包啥的,我也是新手不是很清楚,望懂得人不惜指教。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

win10右鍵沒有壓縮包選項怎麼辦 win10右鍵沒有壓縮包選項怎麼辦 Jul 13, 2023 pm 11:05 PM

win10系統內建解壓縮軟體WinRAR,一般大家在資料夾上右鍵就可找到縮小選項,可是有些使用者發現自己的右鍵沒有壓縮套件選項,怎麼辦呢?你先在選單列找到WinRAR開啟,接著點選上邊的選項,接著挑選設定,在開啟視窗中轉換到整合選單欄,點選前後文選單項目按鍵,勾選「新增到壓縮套件」即可。 win10右鍵沒有壓縮包選項怎麼辦:能夠在Windows10桌面先後點選「開始/WinRar/Winrar」選單項目。這時便會開啟Winrar的軟體主介面,點選上邊的「選項」選單項目。在彈出的選項下拉清單中,大家點選「設定

Win11右鍵選單反應慢解決方法? Win11滑鼠右鍵彈出選單很慢的解決方法 Win11右鍵選單反應慢解決方法? Win11滑鼠右鍵彈出選單很慢的解決方法 Jan 31, 2024 pm 10:06 PM

有些朋友升級完Win11系統後發現滑鼠點擊右鍵彈出選單的速度變慢了,這是怎麼回事呢?是因為配置的問題,還是說要進行什麼樣的設置,本站小編今天給大家解決怎麼解決,其實我們可以將性能調至最高性能,這樣就不會有反應慢的問題了。 Win11滑鼠右鍵彈出選單很慢的解決方法1、先在開始功能表中找到系統設定。 3.接著在下方相關連結中找到進階系統設定。 5、然後在視覺效果標籤下,勾選調整為最佳效能即可。

Win11右鍵選單怎麼加入畫圖程式? Win11右鍵選單新增畫圖程式的方法 Win11右鍵選單怎麼加入畫圖程式? Win11右鍵選單新增畫圖程式的方法 Feb 11, 2024 pm 09:03 PM

不少的win11用戶們想將自己的畫圖程式加入到右鍵選單上,那麼這要怎麼添加?使用者可以直接的右鍵點選開始下的windows終端,然後直接的將下列的程式碼複製到相對應的位置上就可以了。下面就讓本站來為使用者來仔細的介紹一下Win11右鍵選單新增畫圖程式的方法吧。 Win11右鍵選單新增畫圖程式的方法1、先用滑鼠右鍵點選「開始」按鈕(或按Win+X鍵),選擇點選「Windows終端機(管理員)」。 2、然後在終端應用程式裡貼上這串程式碼【reg.exeadd&ldqu

win11文件右鍵選單卡死怎麼解決 win11文件右鍵選單卡死怎麼解決 Jul 02, 2023 pm 11:13 PM

win11檔案右鍵選單卡死怎麼解決?如果需要查看文件具體屬性該怎麼操作?我們經常會左鍵選中文件後在右鍵打開菜單進行屬性查看,但是有許多使用win11版本的操作系統的小伙伴們經常會遇到在右鍵文件時總是要等待一會,右鍵菜單才會顯示,這樣對使用者的電腦使用體驗非常有影響,對此,小編用以下的文章為大家介紹如何解決這個問題。很多小夥伴不知道怎麼詳細操作,小編下面整理了win11右鍵選單卡死解決教程,如果你有興趣的話,跟著小編一起往下看看吧! win11右鍵選單卡死解決教學一覽1、首先我們同時按下【ctr

win10右鍵選單管理打不開怎麼辦 win10右鍵選單管理打不開怎麼辦 Jan 04, 2024 pm 07:07 PM

我們在使用win10系統的時候,使用滑鼠去右鍵桌面或是右鍵選單的時候,發現選單等都打不開,無法正常的去使用電腦了,這時候就需要恢復系統來解決問題。 win10右鍵選單管理打不開:1、先開啟我們的控制面板,然後點選。 2、然後點選安全性和維護下的。 3.再點擊右側的來恢復系統即可。 4.如果還是無法使用,是看是否是滑鼠本身出了問題。 5.如果確定滑鼠沒有問題的話,按下+,輸入。 6.執行完畢後,重啟電腦即可。

右鍵新建word不見了 右鍵新建word不見了 Dec 25, 2023 am 10:43 AM

很多小夥伴用右鍵點選新建的時候,發現清單裡的Word、ppt、Excel都不見了,這是怎麼一回事呢?其實是註冊清單缺少了一些文件,我們只要進入設定裡調整一下數值就可以了,具體的教學下面跟小編一起來看看吧。修復右鍵新建word不見的方法1、點選開始,找到執行命令列,輸入regedit,開啟註冊表。 2、在左側找到HKEY_CLASSES_ROOT目錄,並展開。 3.首先,我們利用CTRL+F快捷鍵,找出「docx」的位置,當然這裡也可以自己下拉找。 4、找到之後,不用展開目錄。我們可以看到右邊有一個(

win11如何設定右鍵選單不折疊? win11如何設定右鍵選單不折疊? Jan 29, 2024 pm 02:30 PM

很多的用戶在升級完win11後發現右鍵選單使用得不是很順手,這就使得很多的用戶們在詢問win11右鍵選單不折疊怎麼設定?其實方法很簡單的,使用者可以進入到工作列設定下來進行操作就可以了。下面就讓本站來為用戶們來仔細的介紹一下win11右鍵選單不折疊設定教程吧。 win11右鍵選單不折疊設定教學1、在工作列空白位置點選滑鼠右鍵,進入工作列設定。 3.點擊開啟的圖示就會直接顯示出來,如果是關閉狀態,那麼就會收納在小三角裡面。

win11滑鼠右鍵選單設定教學 win11滑鼠右鍵選單設定教學 Dec 23, 2023 am 11:05 AM

由於win11更改了滑鼠右鍵選單,許多朋友覺得使用起來不習慣,想要知道win11滑鼠右鍵選單怎麼設置,其實我們只要打開註冊表,在其中就可以編輯右鍵選單了。 win11滑鼠右鍵選單怎麼設定:1.先按下鍵盤「Win+R」開啟運作。 2、在其中輸入「regedit」並回車開啟註冊表。 3.開啟後進入「電腦\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FeatureManagement\Overrides\4」位置。 4.隨後右鍵4資料夾,選擇新建

See all articles