茄子在线看片免费人成视频,午夜福利精品a在线观看,国产高清自产拍在线观看,久久综合久久狠狠综合

    <s id="ddbnn"></s>
  • <sub id="ddbnn"><ol id="ddbnn"></ol></sub>

  • <legend id="ddbnn"></legend><s id="ddbnn"></s>

    html5中地理位置定位api接口開發(fā)應(yīng)用小結(jié)
    來源:易賢網(wǎng) 閱讀:1589 次 日期:2016-08-01 15:23:49
    溫馨提示:易賢網(wǎng)小編為您整理了“html5中地理位置定位api接口開發(fā)應(yīng)用小結(jié)”,方便廣大網(wǎng)友查閱!

    HTML 5提供了地理位置等一系列API可以給用戶使用,方便用戶制作LBS的地理應(yīng)用,首先在支持HTML 5的瀏覽器中,當開啟API時,會詢問是否用戶同意使用api,否則不會開啟的,保證安全

    地理位置定位的幾種方式:IP地址,GPS,Wifi,GSM/CDMA

    地理位置獲取流程:

    1、用戶打開需要獲取地理位置的web應(yīng)用。

    2、應(yīng)用向瀏覽器請求地理位置,瀏覽器彈出詢問,詢問用戶是否共享地理位置。

    3、假設(shè)用戶允許,瀏覽器從設(shè)別查詢相關(guān)信息。

    4、瀏覽器將相關(guān)信息發(fā)送到一個信任的位置服務(wù)器,服務(wù)器返回具體的地理位置。

    HTML5地理地位的實現(xiàn):

    1. 實現(xiàn)基于瀏覽器(無需后端支持)獲取用戶的地理位置技術(shù)

    2. 精確定位用戶的地理位置( 精度最高達10m之內(nèi),依賴設(shè)備 )

    3. 持續(xù)追蹤用戶的地理位置

    4. 與 Google Map、或者 Baidu Map 交互呈現(xiàn)位置信息

    Geolocation API 用于將用戶當前地理位置信息共享給信任的站點,這涉及用戶的隱私安全問題,所以當一個站點需要獲取用戶的當前地理位置,瀏覽器會提示用戶是“允許” or “拒絕”。

    先看看哪些瀏覽器支持Geolocation API:

    IE9.0+、FF3.5+、Safari5.0+、Chrome5.0+、Opera10.6+、IPhone3.0+、Android2.0+

    Geolocation API存在于navigator對象中,只包含3個方法:

    代碼如下:

    1、getCurrentPosition //當前位置

    2、watchPosition //監(jiān)視位置

    3、clearWatch //清除監(jiān)視

    navigator.geolocation.getCurrentPosition( … , function(error){

    switch(error.code){

    case error.TIMEOUT :

    alert( " 連接超時,請重試 " );

    break;

    case error.PERMISSION_DENIED :

    alert( " 您拒絕了使用位置共享服務(wù),查詢已取消 " );

    break;

    case error.POSITION_UNAVAILABLE :

    alert( " ,抱歉,暫時無法為您所在的星球提供位置服務(wù) " );

    break;

    }

    });

    watchPosition像一個追蹤器與clearWatch成對。

    watchPosition與clearWatch有點像setInterval和clearInterval的工作方式。

    var watchPositionId = navigator.geolocation.watchPosition(success_callback, error_callback, options);

    navigator.geolocation.clearWatch(watchPositionId );

    HTML 5提供了地理位置等一系列API可以給用戶使用,方便用戶制作LBS的地理應(yīng)用,首先在支持HTML 5的瀏覽器中,當開啟API時,會詢問是否用戶同意使用api,否則不會開啟的,保證安全。

    1、開啟,判斷是否瀏覽器支持LBS api

    代碼如下:

    function isGeolocationAPIAvailable()

    {

    var location = "No, Geolocation is not supported by this browser.";

    if (window.navigator.geolocation) {

    location = "Yes, Geolocation is supported by this browser.";

    }

    alert(location);

    }

    上面的例子中,還在displayError方法中,捕捉了異常;

    2、獲得用戶的地理位置

    這個使用getCurrentPosition就可以了;

    代碼如下:

    function requestPosition() {

    if (nav == null) {

    nav = window.navigator;

    }

    if (nav != null) {

    var geoloc = nav.geolocation;

    if (geoloc != null) {

    geoloc.getCurrentPosition(successCallback);

    }

    else {

    alert("Geolocation API is not supported in your browser");

    }

    }

    else {

    alert("Navigator is not found");

    }

    }

    當獲得地理位置成功后,會產(chǎn)生一個回調(diào)方法了,處理返回的結(jié)果,

    代碼如下:

    function setLocation(val, e) {

    document.getElementById(e).value = val;

    }

    function successCallback(position)

    {

    setLocation(position.coords.latitude, "latitude"); setLocation(position.coords.longitude, "longitude");

    }

    3、一個很常見的問題,是如何跟蹤用戶不斷變化的地理位置,這里小結(jié)下其中用到的兩個api

    1 watchPosition

    例子如下:

    代碼如下:

    function listenForPositionUpdates() {

    if (nav == null) {

    nav = window.navigator;

    }

    if (nav != null) {

    var geoloc = nav.geolocation;

    if (geoloc != null) {

    watchID = geoloc.watchPosition(successCallback);

    } else {

    alert("Geolocation API is not supported in your browser");

    }

    } else {

    alert("Navigator is not found");

    }

    }

    然后在successCallback中,就可以設(shè)置顯示最新的地理位置:

    代碼如下:

    function successCallback(position){

    setText(position.coords.latitude, "latitude"); setText(position.coords.longitude, "longitude");

    }

    如果不希望實時跟蹤,則可以取消之:

    function clearWatch(watchID) {

    window.navigator.geolocation.clearWatch(watchID);

    }

    4、如何處理異常

    當遇到異常時,可以捕捉之:

    代碼如下:

    if (geoloc != null) {

    geoloc.getCurrentPosition(successCallback, errorCallback);

    }

    function errorCallback(error) {

    var message = "";

    switch (error.code) {

    case error.PERMISSION_DENIED:

    message = "This website does not have permission to use "

    + "the Geolocation API";

    break;

    case error.POSITION_UNAVAILABLE:

    message = "The current position could not be determined.";

    break;

    case error.PERMISSION_DENIED_TIMEOUT:

    message = "The current position could not be determined "

    + "within the specified timeout period.";

    break;

    }

    if (message == "") {

    var strErrorCode = error.code.toString();

    message = "The position could not be determined due to "

    + "an unknown error (Code: " + strErrorCode + ").";

    }

    alert(message);

    }

    5、 在google 地圖上顯示位置(前提是有g(shù)oogle map api等設(shè)置好)

    代碼如下:

    function getCurrentLocation()

    {

    if (navigator.geolocation)

    {

    navigator.geolocation.getCurrentPosition(showMyPosition,showError);

    }

    else

    {

    alert("No, Geolocation API is not supported by this browser.");

    }

    }

    function showMyPosition(position)

    {

    var coordinates=position.coords.latitude+","+position.coords.longitude;

    var map_url="http://maps.googleapis.com/maps/api/staticmap?center="

    +coordinates+"&zoom=14&size=300x300&sensor=false";

    document.getElementById("googlemap").innerHTML="<img src='"+map_url+"' />";

    }

    function showError(error)

    {

    switch(error.code)

    {

    case error.PERMISSION_DENIED:

    alert("This website does not have permission to use the Geolocation API")

    break;

    case error.POSITION_UNAVAILABLE:

    alert("The current position could not be determined.")

    break;

    case error.TIMEOUT:

    alert("The current position could not be determined within the specified time out period.")

    break;

    case error.UNKNOWN_ERROR:

    alert("The position could not be determined due to an unknown error.")

    break;

    }

    }

    更多信息請查看網(wǎng)頁制作
    由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇剩?/div>

    2026國考·省考課程試聽報名

    • 報班類型
    • 姓名
    • 手機號
    • 驗證碼
    關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
    工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)