国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

從零開(kāi)始學(xué)習(xí)調(diào)用百度地圖網(wǎng)頁(yè)API:三、鼠標(biāo)點(diǎn)擊繪圖功能

這篇具有很好參考價(jià)值的文章主要介紹了從零開(kāi)始學(xué)習(xí)調(diào)用百度地圖網(wǎng)頁(yè)API:三、鼠標(biāo)點(diǎn)擊繪圖功能。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

代碼

<!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, #allmap {
            width: 100%;
            height: 100%;
            overflow: hidden;
            margin: 0;
            font-family: "微軟雅黑";
        }

        ul li {
            list-style: none;
        }

        .btn-wrap {
            z-index: 999;
            position: fixed;
            bottom: 40px;
            margin-left: 200px;
            padding: 1rem 1rem;
            border-radius: .25rem;
            background-color: #fff;
            box-shadow: 0 2px 6px 0 rgba(27, 142, 236, 0.5);
        }

        .btn {
            width: 75px;
            height: 30px;
            float: left;
            background-color: #fff;
            color: rgba(27, 142, 236, 1);
            font-size: 14px;
            border: 1px solid rgba(27, 142, 236, 1);
            border-radius: 5px;
            margin: 0 5px;
            text-align: center;
            line-height: 30px;
        }

            .btn:hover {
                background-color: rgba(27, 142, 236, 0.8);
                color: #fff;
            }
    </style>
    <script type="text/javascript" src="https://api.map.baidu.com/api?v=3.0&ak=你的ak"></script>
    <title>顯示坐標(biāo)</title>
</head>
<body>

    <div id="allmap"></div>
    <ul class="btn-wrap" style="z-index: 999;">
        <li class="btn" id="plot_button" onclick="draw()">繪圖</li>
        <li class="btn" id="clear_button" onclick="clearpoint()">清除</li>
        <li class="btn" id="show_pos_button" onclick="display()">顯示坐標(biāo)</li>
        <li class="btn" id="not_show" onclick="notshow()">不顯示</li>
    </ul>
</body>
</html>
<script type="text/javascript">
    var drawflag = 0;
    var latline = new Array();
    var lonline = new Array();
    var line = new Array();
    var colorline = "blue";
    var show_flag = null;
    // 百度地圖API功能
    var map = new BMap.Map("allmap");  // 創(chuàng)建Map實(shí)例


    map.centerAndZoom("北京", 15);      // 初始化地圖,用城市名設(shè)置地圖中心點(diǎn)
    var opts = {
        width: 20,     // 信息窗口寬度
        height: 5,     // 信息窗口高度
    }
    //var a = new Array(BMAP_SATELLITE_MAP,BMAP_NORMAL_MAP);

    var cursor = map.getDefaultCursor();

    map.enableScrollWheelZoom();//開(kāi)啟鼠標(biāo)滾輪縮放

    var mapControl = new BMap.MapTypeControl({ mapTypes: [BMAP_NORMAL_MAP, BMAP_HYBRID_MAP, BMAP_SATELLITE_MAP] });
    map.addControl(mapControl);
    var scaleCtrl = new BMap.ScaleControl();  // 添加比例尺控件
    map.addControl(scaleCtrl);
    var cityCtrl = new BMap.CityListControl();  // 添加城市列表控件
    map.addControl(cityCtrl);
    //map.getUiSettings().setCompassEnabled(true);

    map.addEventListener("click", function (e) {
        addpoint(e.point.lng, e.point.lat);
    });


    function setMouse() {
        if (drawflag == 1)
            map.setDefaultCursor('crosshair');
        else
            map.setDefaultCursor(cursor);
    }

    function draw() {
        if (drawflag == 0)
            drawflag = 1;
        else
            drawflag = 0;
        setMouse();
    }
    //顯示坐標(biāo)信息窗口槽函數(shù)
    function showinfo(e) {
        var infoWindow = new BMap.InfoWindow(e.point.lat.toFixed(3) + ", " + e.point.lng.toFixed(3), opts);  // 創(chuàng)建信息窗口對(duì)象
        map.openInfoWindow(infoWindow, e.point);
    }


    //添加事件
    function display() {
        if (show_flag == null) {
            map.addEventListener('click', showinfo, false);
            show_flag = 1;
        }
    }
    //移除事件
    function notshow() {
        map.removeEventListener('click', showinfo);
        map.closeInfoWindow();
        show_flag = null;
    }
    function addpoint(lon, lat) {
        var k = 0;

        if (drawflag == 1) {
            line = new Array();
            latline.push(lat);
            lonline.push(lon);
            for (var i = 0; i < latline.length - 1; i++) {
                plot_line(lonline[i], latline[i], lonline[i + 1], latline[i + 1])
                k = i + 1;
            }

            var marker = new BMap.Marker(new BMap.Point(lon, lat));
            var point = new BMap.Point(lon, lat);
            map.addOverlay(marker);
            marker.addEventListener('click', function () {
                var opts = {
                    title: `<font color='blue'>位置信息</font>`,
                };
                var info = '名稱:坐標(biāo)點(diǎn)' + k + "</br>坐標(biāo):" + point.lat.toFixed(5) + ", " + point.lng.toFixed(5);
                var infoWindow = new BMap.InfoWindow(info, opts);  // 創(chuàng)建信息窗口對(duì)象
                map.openInfoWindow(infoWindow, point);
            });
        }
    }
    function plot_line(lon1, lat1, lon2, lat2) {
        //起始點(diǎn)的經(jīng)緯度
        //終止點(diǎn)的經(jīng)緯度
        var polyline1 = new BMap.Polyline([
            new BMap.Point(lon1, lat1),
            new BMap.Point(lon2, lat2)
        ], {
            strokeColor: "red",//設(shè)置顏色
            strokeWeight: 5, //寬度
            strokeOpacity: 1
        });//透明度
        map.addOverlay(polyline1);

        polyline1.addEventListener('click', function () {
            var opts = {
                title: `<font color='red'>距離</font>`,
            };
            var len_point = new BMap.Point((polyline1.mv.kf.lng + polyline1.mv.nf.lng) / 2.0, (polyline1.mv.kf.lat + polyline1.mv.nf.lat) / 2.0);
            var infoWindow = new BMap.InfoWindow("長(zhǎng)度", opts);
            map.openInfoWindow(infoWindow, len_point);
        });
        polyline1.disableMassClear();
        line.push(polyline1);

    }
    function clearpoint() {
        var lines = map.getOverlays();
        //var allOverlay = map.getOverlays();

        for (var i = 0; i < lines.length; i++) {

            lines[i].enableMassClear();
        }
        map.clearOverlays();
        latline = new Array();
        lonline = new Array();
        line = new Array();
    }

</script>

注:需要將你的ak替換,ak從百度地圖官網(wǎng)注冊(cè)申請(qǐng),選擇瀏覽器類(lèi)型api。

功能

繪制線段
從零開(kāi)始學(xué)習(xí)調(diào)用百度地圖網(wǎng)頁(yè)API:三、鼠標(biāo)點(diǎn)擊繪圖功能,學(xué)習(xí),百度
顯示對(duì)象的位置信息
從零開(kāi)始學(xué)習(xí)調(diào)用百度地圖網(wǎng)頁(yè)API:三、鼠標(biāo)點(diǎn)擊繪圖功能,學(xué)習(xí),百度
從零開(kāi)始學(xué)習(xí)調(diào)用百度地圖網(wǎng)頁(yè)API:三、鼠標(biāo)點(diǎn)擊繪圖功能,學(xué)習(xí),百度

顯示任意點(diǎn)坐標(biāo)
從零開(kāi)始學(xué)習(xí)調(diào)用百度地圖網(wǎng)頁(yè)API:三、鼠標(biāo)點(diǎn)擊繪圖功能,學(xué)習(xí),百度

問(wèn)題注意

addEventListener

    //添加事件
    function display() {
            //alert(e.point.lng + ", " + e.point.lat);
        map.addEventListener('click', showinfo);

    }
    //移除事件
    function notshow() {
        map.closeInfoWindow();

        map.removeEventListener('click', showinfo);
    }

最初的實(shí)現(xiàn)方法,在顯示坐標(biāo)按鈕多次被點(diǎn)擊后,會(huì)導(dǎo)致再點(diǎn)擊不顯示按鈕,無(wú)法remove事件。依然會(huì)在地圖上點(diǎn)擊后出現(xiàn)坐標(biāo)信息。
這是因?yàn)閍ddEventListener可以重復(fù)添加事件,為了避免重復(fù)添加事件,使用全局變量show_flag,通過(guò)值來(lái)判斷是否已經(jīng)添加過(guò),若已經(jīng)添加過(guò)事件,賦值為1,再次點(diǎn)擊顯示坐標(biāo)按鈕,不會(huì)重復(fù)添加事件。

    //添加事件
    function display() {
        if (show_flag == null) {
            map.addEventListener('click', showinfo, false);
            show_flag = 1;
        }
    }
    //移除事件
    function notshow() {
        map.removeEventListener('click', showinfo);
        map.closeInfoWindow();
        show_flag = null;
    }

plot_line

如果將函數(shù)內(nèi)容直接在循環(huán)內(nèi)實(shí)現(xiàn),不使用函數(shù)。則polyline1變量在循環(huán)結(jié)束后調(diào)用addEventListener的值,只調(diào)用循環(huán)結(jié)束最后的結(jié)果。
不是每個(gè)循環(huán)都不同的值。
因此,寫(xiě)為函數(shù)。每個(gè)線段addEventListener為不同的值,在中點(diǎn)顯示信息。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-724878.html

            for (var i = 0; i < latline.length - 1; i++) {
                plot_line(lonline[i], latline[i], lonline[i + 1], latline[i + 1])
                k = i + 1;
            }

    function plot_line(lon1, lat1, lon2, lat2) {
        //起始點(diǎn)的經(jīng)緯度
        //終止點(diǎn)的經(jīng)緯度
        var polyline1 = new BMap.Polyline([
            new BMap.Point(lon1, lat1),
            new BMap.Point(lon2, lat2)
        ], {
            strokeColor: "red",//設(shè)置顏色
            strokeWeight: 5, //寬度
            strokeOpacity: 1
        });//透明度
        map.addOverlay(polyline1);

        polyline1.addEventListener('click', function () {
            var opts = {
                title: `<font color='red'>距離</font>`,
            };
            var len_point = new BMap.Point((polyline1.mv.kf.lng + polyline1.mv.nf.lng) / 2.0, (polyline1.mv.kf.lat + polyline1.mv.nf.lat) / 2.0);
            var infoWindow = new BMap.InfoWindow("長(zhǎng)度", opts);
            map.openInfoWindow(infoWindow, len_point);
        });
        polyline1.disableMassClear();
        line.push(polyline1);

    }

到了這里,關(guān)于從零開(kāi)始學(xué)習(xí)調(diào)用百度地圖網(wǎng)頁(yè)API:三、鼠標(biāo)點(diǎn)擊繪圖功能的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【從零開(kāi)始學(xué)習(xí)JAVA | 第二十一篇】常見(jiàn)API介紹 System

    【從零開(kāi)始學(xué)習(xí)JAVA | 第二十一篇】常見(jiàn)API介紹 System

    目錄 前言: System: System類(lèi)中靜態(tài)方法: 總結(jié): ? ? ????????? ? system 是一個(gè)很底層的 API,是一個(gè)工具類(lèi), 提供了一些與系統(tǒng)相關(guān)的方法 。他在我們寫(xiě)項(xiàng)目的時(shí)候提供了一些非常實(shí)用的方法,本篇將會(huì)介紹一些實(shí)用的system API 的方法調(diào)用。 System類(lèi)是Java語(yǔ)言提供的一個(gè)

    2024年02月15日
    瀏覽(90)
  • html 導(dǎo)入百度地圖 網(wǎng)頁(yè)中如何導(dǎo)入百度地圖

    html 導(dǎo)入百度地圖 網(wǎng)頁(yè)中如何導(dǎo)入百度地圖

    先看案例如圖所示 首先我們需要知道我們想要標(biāo)注地點(diǎn)的經(jīng)緯度 經(jīng)緯度查詢網(wǎng)址如下 圖中以同程大廈為例 經(jīng)緯度查詢定位 拾取坐標(biāo)系統(tǒng) 經(jīng)緯度查詢地圖 好了 準(zhǔn)備工作做好 現(xiàn)在開(kāi)始編碼~ 第一步 html css部分 注意點(diǎn)1. #map 命名 不要隨意更改 如影響到您的布局 您可以在外面

    2023年04月08日
    瀏覽(104)
  • 從零開(kāi)始的Hadoop學(xué)習(xí)(五)| HDFS概述、shell操作、API操作

    從零開(kāi)始的Hadoop學(xué)習(xí)(五)| HDFS概述、shell操作、API操作

    1.1 HDFS 產(chǎn)出背景及定義 1) HDFS 產(chǎn)生背景 隨著數(shù)據(jù)量越來(lái)越大,在一個(gè)操作系統(tǒng)存不下所有的數(shù)據(jù),那么就分配到更多的操作系統(tǒng)管理的磁盤(pán)中,但是不方便管理和維護(hù),迫切 需要一種系統(tǒng)來(lái)管理多臺(tái)機(jī)器上的文件 ,這就是分布式文件管理系統(tǒng)。 HDFS只是分布式文件管理系統(tǒng)

    2024年02月10日
    瀏覽(94)
  • 從零開(kāi)始學(xué)習(xí) Java:簡(jiǎn)單易懂的入門(mén)指南之API、String類(lèi)(八)

    從零開(kāi)始學(xué)習(xí) Java:簡(jiǎn)單易懂的入門(mén)指南之API、String類(lèi)(八)

    1.1API概述 什么是API ? API (Application Programming Interface) :應(yīng)用程序編程接口 java中的API ? 指的就是 JDK 中提供的各種功能的 Java類(lèi),這些類(lèi)將底層的實(shí)現(xiàn)封裝了起來(lái),我們不需要關(guān)心這些類(lèi)是如何實(shí)現(xiàn)的,只需要學(xué)習(xí)這些類(lèi)如何使用即可,我們可以通過(guò)幫助文檔來(lái)學(xué)習(xí)這些API如

    2024年02月14日
    瀏覽(95)
  • 百度地圖3D棱柱鼠標(biāo)事件

    百度地圖3D棱柱鼠標(biāo)事件

    百度地圖2D API ??JavaScript API | 百度地圖API SDK 百度地圖3D API?? jspopularGL | 百度地圖API SDK 3D棱柱效果如下 一.?渲染地圖 這塊加了一個(gè)地圖樣式? 是從百度地圖 API 上扣的 二. 獲取行政邊界點(diǎn)位? 并添加鼠標(biāo)點(diǎn)擊事件 首先 調(diào)用了百度地圖獲取市級(jí)行政邊界的方法? Boundary() 去獲

    2024年02月09日
    瀏覽(92)
  • 教你從零開(kāi)始畫(huà)echarts地圖

    教你從零開(kāi)始畫(huà)echarts地圖

    離線地圖下載地址https://datav.aliyun.com/tools/atlas/index.html echarts文檔地址https://echarts.apache.org/zh/option.html 基于VUE編寫(xiě),其他框架請(qǐng)自行轉(zhuǎn)換,大同小異 先讓地圖內(nèi)容出來(lái),npm安裝步驟省略,請(qǐng)參考官方文檔,創(chuàng)建的div必須設(shè)置寬度和高度,關(guān)于圖表的寬高自適應(yīng),參考我的另一

    2023年04月17日
    瀏覽(319)
  • Leaflet 調(diào)用百度瓦片地圖服務(wù)

    Leaflet 調(diào)用百度瓦片地圖服務(wù)

    在使用 leaflet 調(diào)用第三方瓦片地圖服務(wù)的項(xiàng)目,主要谷歌地圖、高德地圖、百度地圖和 OSM 地圖,與其他三種地圖對(duì)比,百度地圖的瓦片組織方式是不同的。百度從中心點(diǎn)經(jīng)緯度(0,0)度開(kāi)始計(jì)算瓦片,而谷歌地圖是從左上角經(jīng)緯度(-180,90)度開(kāi)始計(jì)算瓦片;如果直接使用百度瓦片

    2024年02月08日
    瀏覽(96)
  • 百度地圖API的使用

    百度地圖API的使用

    這篇文章主要想讓讀者掌握: 百度地圖官網(wǎng) API 百度地圖JavaScript API 當(dāng)前的位置在網(wǎng)頁(yè)中顯示,插入地圖 拖拽 點(diǎn)擊事件。 應(yīng)用場(chǎng)景:網(wǎng)頁(yè)插入百度地圖 注意:不關(guān)注定位、距離、公交,這些功能一般結(jié)合移動(dòng)端GPS實(shí)現(xiàn) 第一步:進(jìn)入官網(wǎng) 百度地圖JavaScript API 直接搜百度地圖

    2024年02月14日
    瀏覽(435)
  • QGraphicsView 如何實(shí)現(xiàn)百度地圖按照鼠標(biāo)點(diǎn)進(jìn)行放大縮小效果

    QGraphicsView 如何實(shí)現(xiàn)百度地圖按照鼠標(biāo)點(diǎn)進(jìn)行放大縮小效果

    前段時(shí)間用了QGraphicsView做了一些工作,然而如何實(shí)現(xiàn)QGraphicsView的放大縮小的效果也很簡(jiǎn)單,照鼠標(biāo)某一點(diǎn)進(jìn)行縮放,僅靠以下代碼對(duì)view進(jìn)行縮放會(huì)導(dǎo)致view上的item在放大縮小的過(guò)程中跑偏了。 我們看一下僅靠以上代碼實(shí)現(xiàn)的放大縮小的效果。 從下圖中我們看到把圖中小矩形

    2024年02月05日
    瀏覽(103)
  • 【QT--使用百度地圖API顯示地圖并繪制路線】

    【QT--使用百度地圖API顯示地圖并繪制路線】

    先吐槽一下下,本身qt學(xué)的就不咋滴,誰(shuí)想到第一件事就是讓寫(xiě)一個(gè)上位機(jī)工具,根據(jù)CAN總線傳來(lái)的位置信息,在地圖上去繪制路線,并獲取當(dāng)前路段的限速信息等。當(dāng)聽(tīng)到這個(gè)需求的時(shí)候,第一時(shí)間是有點(diǎn)懵逼的。自己原本是沒(méi)接觸過(guò)這方面的知識(shí),而且qt學(xué)的也特別的垃圾

    2024年01月24日
    瀏覽(96)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包