H5地理定位

地理位置

if(navigator.geolocation){
        alert("您的瀏覽器支持定位!");
      }else{
        alert("請更新你的瀏覽器檩淋!");
      }

getCurrentPostion

if(navigator.geolocation){
        alert("您的瀏覽器支持定位!");        navigator.geolocation.getCurrentPosition(successCallback,errorCallback);
      }else{
        alert("請更新你的瀏覽器模闲!");
      }
      function successCallback(result){
        //console.log(222);
        alert(parseInt(result.coords.latitude) +","+ parseInt(result.coords.longitude));
        console.log(result);
      }
      function errorCallback(error){
        //console.log(11);
        alert(error);
      }
if(navigator.geolocation){
        alert("您的瀏覽器支持定位!");        navigator.geolocation.getCurrentPosition(successCallback,errorCallback);
      }else{
        alert("請更新你的瀏覽器崭捍!");
      }
      function successCallback(position){
        //console.log(222);
        var coords = position.coords;
        var latitude = coords.latitude;
        var longitude = coords.longitude;
        var accuracy = coords.accuracy;
        alert(parseInt(latitude)+","+ parseInt(longitude));
        //console.log(result);
      }
      function errorCallback(error){
        //console.log(11);
        //alert(error);
        switch(error.code){
          case 3:
            alert("超時尸折,請重試!");
            break;
          case 2:
            alert("位置信息不可用殷蛇!");
            break;
          case 1:
            alert("用戶拒絕了該瀏覽器的位置信息請求翁授!");
            break;
          case 0:
            alert("未知錯誤拣播!");
            break;
        }
      }
  • 配置對象 添加位置對象作為第三個參數(shù)options(是個對象{enableHeightAcuracy:true,timeout:5000,maximumAge:3000})
  • enableHighAcuracy:true(指示瀏覽器獲取高精度的位置、默認為false收擦,設置為true優(yōu)先使用GPS定位)
  • timeout:5000 (指定獲取地理位置的超時時間、默認不限時谍倦、單位為毫秒)
  • maximumAge:3000 (最長有效期塞赂、在重復獲取地理位置時,此參數(shù)指定多久在此獲取位置)

watchPosition(用在移動端昼蛀,在設備位置發(fā)生變化后不斷執(zhí)行宴猾,用法和setCurrentPositon相同)

  • watchPosition(通常使用在移動端,移動設備位置一旦發(fā)生變化叼旋,就執(zhí)行一次仇哆,獲取位置)
var watcher;
      $('#bt1').click(function(){
        if(navigator.geolocation){
          alert("您的瀏覽器支持定位!");
          watcher = navigator.geolocation.watchPosition(successCallback,errorCallback);
        }else{
          alert("請更新你的瀏覽器夫植!");
        }
      })
      $('#bt2').click(function(){
        if(navigator.geolocation){
          //alert("您的瀏覽器支持定位讹剔!");
          navigator.geolocation.clearWatch(watcher);
        }else{
          alert("請更新你的瀏覽器!");
        }
      })
      function successCallback(position){
        //console.log(222);
        var coords = position.coords;
        var latitude = coords.latitude;
        var longitude = coords.longitude;
        var accuracy = coords.accuracy;
        console.log(coords);
        alert(parseInt(latitude)+","+ parseInt(longitude));
        //console.log(result);
      }
      function errorCallback(error){
        //console.log(11);
        //alert(error);
        switch(error.code){
          case 3:
            alert("超時详民,請重試延欠!");
            break;
          case 2:
            alert("位置信息不可用!");
            break;
          case 1:
            alert("用戶拒絕了該瀏覽器的位置信息請求沈跨!");
            break;
          case 0:
            alert("未知錯誤由捎!");
            break;
        }
      }

百度地圖API

  • 引入API
<script src="http://api.map.baidu.com/api?v=2.0&ak=您的密鑰" type="text/javascript">   </script>
  • 使用百度地圖API
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
    <style media="screen">
      *{
        margin: 0;
        padding: 0;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        background: greenyellow;
      }
    </style>
  </head>
  <body>
    <div id="map" style="width:100%;height:100%;"></div>
  <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.js"></script>
  <script src="http://api.map.baidu.com/api?v=2.0&ak=5aiK2z3bGTyMnInk6vjL0tZrU8GKHhl9" type="text/javascript"></script>
  <script type="text/javascript">
    var map = new BMap.Map("map");
    map.centerAndZoom('成都',15);
  </script>
  </body>
</html>
  • 用geolocation對象定位
var geolocation = new BMap.Geolocation();
geolocation.getCurrentPosition(callback: function, options: PositionOptions);
geolocation.getCurrentPosition(function(result) {
            var latitude = result.latitude;
            console.log(latitude);
});
  • 初始化百度地圖(map用來實例化地圖對象)
var mp = new BMap.Map(‘map’);  //創(chuàng)建地圖對象
var point = new BMap.Point(121.491, 31.233);//創(chuàng)建中心點對象
mp.centerAndZoom(point, 15); //初始化地圖,設置中心和縮放比例饿凛。
  • 初始化地圖和定位結合使用
var map = new BMap.Map("map");
    var geolocation = new BMap.Geolocation();
    geolocation.getCurrentPosition(successCallback);
    function successCallback(position){
      console.log(position);
      map.centerAndZoom(position.point,20);
    }

map對象常見方法

  • enableDragging()/disableDragging() 啟用/禁用地圖拖拽
  • enableScrollWheelZoom()/disableScrollWheelZoom() 啟用/禁用滾輪放大縮小
  • enableDoubleClickZoom()/disableDoubleClickZoom() 啟用/禁用雙擊放大
  • enableKeyboard()/enableKeyboard () 啟用/禁用鍵盤上下鍵移動地圖
  • getCenter() 返回當前的中心點對象

百度API控件

  • 百度API控件
  • Control:控件的抽象基類狞玛,所有控件均繼承此類的方法、屬性涧窒。通過此類您可實現(xiàn)自定義控件心肪。
  • NavigationControl:地圖平移縮放控件,PC端默認位于地圖左上方杀狡,它包含控制地圖的平移和縮放的功能蒙畴。移動端提供縮放控件,默認位于地圖右下方呜象。
  • OverviewMapControl:縮略地圖控件膳凝,默認位于地圖右下方,是一個可折疊的縮略地圖恭陡。
  • ScaleControl:比例尺控件蹬音,默認位于地圖左下方,顯示地圖的比例關系休玩。
  • MapTypeControl:地圖類型控件著淆,默認位于地圖右上方劫狠。
  • CopyrightControl:版權控件,默認位于地圖左下方永部。
  • GeolocationControl:定位控件独泞,針對移動端開發(fā),默認位于地圖左下方苔埋。
var MapTypeControl = new BMap.MapTypeControl();
map.addControl(MapTypeControl);
  • 應用
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
    <style media="screen">
      *{
        margin: 0;
        padding: 0;
      }
      html,
      body {
        width: 100%;
        height: 100%;
        background: greenyellow;
      }
    </style>
  </head>
  <body>
    <button type="button" name="button" id="btn">定位</button>
    <div id="map" style="width:100%;height:100%;"></div>
  <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.js"></script>
  <script src="http://api.map.baidu.com/api?v=2.0&ak=5aiK2z3bGTyMnInk6vjL0tZrU8GKHhl9" type="text/javascript"></script>
  <script type="text/javascript">
      var map = new BMap.Map("map");
      initMap();
      initPosition();
    function initMap(){
      var opts = {
        anchor: BMAP_ANCHOR_BOTTOM_LEFT,
        offset:new BMap.Size(200,200),
        type:BMAP_NAVIGATION_CONTROL_LARGE
      }
      map.centerAndZoom("北京",20);
      var MapTypeControl = new BMap.MapTypeControl(opts);
      map.addControl(MapTypeControl);
      var NavigationControl = new BMap.NavigationControl();
      map.addControl(NavigationControl);
    }
    function initPosition(){
      $('#btn').click(function(){
        var geolocation = new BMap.Geolocation();
        geolocation.getCurrentPosition(successCallback);
      })
      function successCallback(position){
        //console.log(position);
        //var point = new BMap.Point(latitude,langtitude);
        map.centerAndZoom(position.point,20);
        //console.log(map.getCenter());
      }
    }
  </script>
  </body>
</html>
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末懦砂,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子组橄,更是在濱河造成了極大的恐慌荞膘,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件玉工,死亡現(xiàn)場離奇詭異羽资,居然都是意外死亡,警方通過查閱死者的電腦和手機遵班,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進店門屠升,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人费奸,你說我怎么就攤上這事弥激。” “怎么了愿阐?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵微服,是天一觀的道長。 經(jīng)常有香客問我缨历,道長以蕴,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任辛孵,我火速辦了婚禮丛肮,結果婚禮上,老公的妹妹穿的比我還像新娘魄缚。我一直安慰自己宝与,他們只是感情好,可當我...
    茶點故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布冶匹。 她就那樣靜靜地躺著习劫,像睡著了一般。 火紅的嫁衣襯著肌膚如雪嚼隘。 梳的紋絲不亂的頭發(fā)上诽里,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天,我揣著相機與錄音飞蛹,去河邊找鬼谤狡。 笑死灸眼,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的墓懂。 我是一名探鬼主播焰宣,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼拒贱!你這毒婦竟也來了宛徊?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤逻澳,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后暖呕,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體斜做,經(jīng)...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年湾揽,在試婚紗的時候發(fā)現(xiàn)自己被綠了瓤逼。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,722評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡库物,死狀恐怖霸旗,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情戚揭,我是刑警寧澤诱告,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站民晒,受9級特大地震影響精居,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜潜必,卻給世界環(huán)境...
    茶點故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一靴姿、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧磁滚,春花似錦佛吓、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽工窍。三九已至觅玻,卻和暖如春歌馍,著一層夾襖步出監(jiān)牢的瞬間次询,已是汗流浹背比伏。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留益缎,地道東北人遇伞。 一個月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像据沈,于是被迫代替她去往敵國和親哟沫。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,614評論 2 353

推薦閱讀更多精彩內(nèi)容