溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

HTML5怎么獲取當前地理位置并在百度地圖上展示

發(fā)布時間:2021-05-07 11:32:03 來源:億速云 閱讀:231 作者:小新 欄目:web開發(fā)

這篇文章主要介紹了HTML5怎么獲取當前地理位置并在百度地圖上展示,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

1.HTML5獲取當前地理位置

HTML5 Geolocation API(地理位置應用程序接口)可以獲取當前地理位置,手機端使用GPS,電腦則根據(jù)網(wǎng)絡定位

檢查瀏覽器是否支持HTML5 Geolocation API

<script type="text/javascript">
if(navigator.geolocation){
    alert('瀏覽器支持GeoLocation!');
}else{
    alert('瀏覽器不支持GeoLocation!');
}
</script>

提供了3個調用方法

// 獲取用戶當前位置
void getCurrentPosition(onSuccess, onError, options);

// 持續(xù)獲取用戶當前位置,showLocation表示回調方法
int watchPosition(showLocation, onError, options);

// 取消監(jiān)控, watchId 為watchPosition返回值
void clearWatch(watchId);

onSuccess 成功后回調方法(必選)
onError 失敗回調方法(可選)
options 其他參數(shù)(可選)

options = {
    enableHighAccuracy, // boolean,是否要求高精度的地理信息
    timeout,            // 最大等待時間,默認0毫秒
    maximumAge          // 應用程序緩存時間
}

2.調用百度地圖展示

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>  
<title>基于HTML5查找地理位置并調用百度API展示</title> 
<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.2"></script>  
<script type="text/javascript">

    // 調用HTML5 GeoLocation API獲取地理位置
    function getLocation(){

        document.getElementById('container').innerHTML = '正在搜尋中,請稍候。。。';

        var options = {
            enableHighAccuracy:true, 
            maximumAge:1000
        }

        if(navigator.geolocation){
            //瀏覽器支持geolocation
            navigator.geolocation.getCurrentPosition(onSuccess,onError,options);
        }else{
            //瀏覽器不支持geolocation
            alert('瀏覽器不支持GeoLocation!');
        }
    }

    // 獲取成功
    function onSuccess(position){

        // 經(jīng)度
        var longitude =position.coords.longitude;

        // 緯度
        var latitude = position.coords.latitude;

        // 使用百度地圖API創(chuàng)建地圖實例  
        var map =new BMap.Map("container");

        // 創(chuàng)建一個坐標
        var point =new BMap.Point(longitude,latitude);

        // 地圖初始化,設置中心點坐標和地圖級別  
        map.centerAndZoom(point, 16);

        // 設置標注的圖標,可自己定義圖標
        var icon = new BMap.Icon("http://api.map.baidu.com/img/markers.png", new BMap.Size(23, 25), {  
            offset: new BMap.Size(10, 25),              // 定位圖標尺寸  
            imageOffset: new BMap.Size(0, 0 - 11 * 25)  // 設置圖片偏移  
        }); 

        // 設置標注的經(jīng)緯度
        var marker = new BMap.Marker(new BMap.Point(longitude,latitude),{icon:icon});

        // 把標注添加到地圖上
        map.addOverlay(marker);

        // 設置點擊事件
        marker.addEventListener("click", function(){
            alert("經(jīng)度:" + longitude + ", 緯度:" + latitude);
        });
    }

    // 獲取失敗
    function onError(error){
        switch(error.code){
            case 1:
                alert("位置服務被拒絕");
            break;

            case 2:
                alert("暫時獲取不到位置信息");
            break;

            case 3:
                alert("獲取信息超時");
            break;

            case 4:
                alert("未知錯誤");
            break;
        }
    }

    window.onload = getLocation;
</script>
</head>
<body>
   <div id="container" style="width:640px;height:640px"></div>
</body>
</html>

HTML5怎么獲取當前地理位置并在百度地圖上展示

HTML5怎么獲取當前地理位置并在百度地圖上展示

感謝你能夠認真閱讀完這篇文章,希望小編分享的“HTML5怎么獲取當前地理位置并在百度地圖上展示”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業(yè)資訊頻道,更多相關知識等著你來學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI