• <kbd id="qyk40"></kbd>
  • <strike id="qyk40"></strike><samp id="qyk40"><pre id="qyk40"></pre></samp>

    應(yīng)用程序編程接口 是編程指令集合和訪問軟件應(yīng)用程序的標(biāo)準(zhǔn)。通過一個 API,您可以利用 API 提供的服務(wù)設(shè)計出強大的產(chǎn)品。

    HTML5 提供了一些新的 API。例如:

    • 用于渲染圖形或其他可視圖像的新 canvas 元素所使用的 2D 繪圖 API
    • 支持離線 Web 應(yīng)用程序的緩存 API
    • 使用新 video 和 audio 元素來播放視頻和音頻的 API
    • 支持瀏覽歷史訪問和添加頁面的歷史 API
    • draggable 屬性支持的拖放 API
    • contenteditable 屬性支持的編輯 API
    • 使用 JavaScript API 進(jìn)行鍵-值對存儲的客戶端存儲及嵌入式 SQL 數(shù)據(jù)庫

    本文主要關(guān)注于兩個 API:Geolocation 和 Web Worker。首先,本文將分析 API;然后,再創(chuàng)建一個使用這兩種 API 的頁面。

    回頁首

    商機無處不在:GEOLOCATION

    您可以使用 Geolocation API 來確定和分享地理位置。這個 API 會返回經(jīng)度和緯度坐標(biāo) — 企業(yè)可以利用這些信息向這個坐標(biāo)附近的區(qū)域提供服務(wù)。這些服務(wù)一般指的是基于位置的服務(wù)(LBS)。

    LBS 指的是用于確定所監(jiān)控設(shè)備的物理位置的地理數(shù)據(jù)源,因此也可以確定該位置的人們。這個功能最有趣的地方是它使人們能夠圍繞某些關(guān)注的地理位置點周圍的市場進(jìn)行交互。

    企業(yè)實際上是為客戶創(chuàng)造優(yōu)質(zhì)、實用的服務(wù)和價值,同時為利益干系人、債權(quán)人、股東、員工和供應(yīng)商創(chuàng)造經(jīng)濟(jì)和財務(wù)效益。由 Geolocation 支持的 LBS 能夠使用非瀏覽器設(shè)備或瀏覽器來簡化對貨物或人的追蹤和監(jiān)控。在商業(yè)應(yīng)用上,地理位置指的是利用地理信息來確定人或事的位置,然后將這些信息銷售給任何需要使用這些信息的人, 他們可能利用這個位置信息來進(jìn)行社交活動、商業(yè)應(yīng)用或其他用途,前提是這些信息的擁有者已經(jīng)授權(quán)使用這些信息。

    如何獲取地理信息

    Geolocation API 是基于新增加的全局對象 navigatornavigator.geolocation。JavaScript 對象 navigator 包含了很有用的有關(guān)訪問者的瀏覽器和系統(tǒng)的信息。Geolocation 可以使用 IP 地址、基于 Web 的數(shù)據(jù)庫、無線網(wǎng)絡(luò)連接和三角測量或 GPS 技術(shù)來確定經(jīng)度和緯度。一定要注意 Geolocation 所提供信息的精確性會由于獲取信息的方式不同而有所差別。有時候,您可能無法精確地讀取某些位置的地理信息,甚至完全無法讀取。

    腳本可以使用 navigator.geolocation 對象來確定用戶所使用設(shè)備的位置信息。在獲得了位置信息之后,腳本會基于所獲得的數(shù)據(jù)創(chuàng)建和生成一個位置對象。

    navigator.geolocation 對象具有 3 個方法:

    • getCurrentPosition()
    • watchPosition()
    • clearWatch()

    getCurrentPosition() 方法

    getCurrentPosition() 方法能夠獲取用戶的當(dāng)前位置,但是只能獲取一次。當(dāng)腳本調(diào)用這個方法時,這個方法會以異步方式獲取宿主設(shè)備的當(dāng)前位置。異步通信 表示發(fā)送者和接收者在通信時并不是同時加入的。使用異步的通信方式使瀏覽器能夠繼續(xù)執(zhí)行其他活動,這樣它就不需要等待接收實體的響應(yīng)。

    getCurrentPosition() 方法最多可以接收 3 個參數(shù):

    • geolocationSuccess 當(dāng)前位置的回調(diào)函數(shù)(必需的)
    • geolocationError 出現(xiàn)錯誤時執(zhí)行的回調(diào)函數(shù)(可選的)
    • geolocationOptions 地理位置選項(可選的)

    navigator.geolocation.getCurrentPositon() 方法會將宿主設(shè)備的當(dāng)前位置通過一個 Position 對象以參數(shù)的形式返回給回調(diào)函數(shù) geolocationSuccess。如果出現(xiàn)錯誤,那么它會使用一個 PositionError 對象來調(diào)用回調(diào)函數(shù) geolocationError。您可以為 geolocationOptions 設(shè)置 3 個屬性:enableHighAccuracytimeout  maximumAge。如果設(shè)備支持,分別指定位置返回的超時時間和緩存位置可以使用的最長時間,那么這些可選屬性就能夠提高精確度。

    getCurrentPosition() 方法的調(diào)用方式如下所示:

    void navigator.geolocation.getCurrentPosition(
              geolocationSuccess, geolocationError, geolocationOptions);

    watchPosition() 方法

    watchPosition() 方法會定期查詢用戶的位置,觀察用戶位置是否發(fā)生了變化。它最多可以接收 3 個參數(shù)。

    當(dāng)調(diào)用 watchPosition 時,它會異步地啟動一個觀察進(jìn)程,包括獲取一個新的 Position 對象和創(chuàng)建一個 watchID。如果獲取位置成功,那么關(guān)聯(lián)了 Position 對象的geolocationSuccess 方法就被調(diào)用。如果執(zhí)行帶有非空的 geolocationError 參數(shù)的方法出現(xiàn)錯誤,那么這個方法會產(chǎn)生一個以 PositionError 對象為參數(shù)的 geolocationError。當(dāng)設(shè)備的位置發(fā)生變化時,帶有新的 Position 對象的回調(diào)函數(shù)就會被調(diào)用。

    watchPosition() 方法的調(diào)用方式如下所示:

    long navigator.geolocation.watchPosition(
              geolocationSuccess, geolocationError, geolocationOptions);

    clearWatch() 方法

    clearWatch() 方法會終止一個仍在執(zhí)行的 watchPosition()。這個方法只能有一個參數(shù)。被調(diào)用時,它會查找之前聲明的 watchID 參數(shù),并立即停止它。

    clearWatch() 方法的調(diào)用方式如下所示:

    void navigator.geolocation.clearWatch(watchID)

    地理數(shù)據(jù):Position 對象

    Geolocation API 會返回一個地理位置對象 Position。這個對象具有兩個屬性:timestamp  coordstimestamp 屬性表示地理數(shù)據(jù)創(chuàng)建的時間。而 coords 屬性包含了 7 個屬性:

    • coords.latitude 估算的緯度
    • coords.longitude 估算的經(jīng)度
    • coords.altitude 估算的高度
    • coords.accuracy 所得經(jīng)度和緯度的估算精度,以米為單位
    • coords.altitudeAccuracy 所得高度的估算精度,以米為單位
    • coords.heading. 宿主設(shè)備的當(dāng)前移動方向,以度為單位,相對于正北方向順時針方向計算
    • coords.speed. 設(shè)備的當(dāng)前對地速度,以米/秒為單位

    這里只有 3 個屬性是必需的:coords.latitudecoords.longitude  coords.accuracy。其他屬性返回 null,取決于設(shè)備及其交互的后端定位服務(wù)器的功能。heading  speed 屬性是基于用戶的前一個位置計算的(如果有)。

    穩(wěn)定

    產(chǎn)品高可用性高并發(fā)

    貼心

    項目群及時溝通

    專業(yè)

    產(chǎn)品經(jīng)理1v1支持

    快速

    MVP模式小步快跑

    承諾

    我們選擇聲譽

    堅持

    10年專注高端品質(zhì)開發(fā)
    • 返回頂部
    国产精品视频白浆免费视频| 久久午夜精品视频| 国产精品漂亮美女在线观看| 国产成人精品一区二区秒拍| 久久久久久久久无码精品亚洲日韩 | 亚洲国产人成精品| 中文字幕日韩一区| 中文字幕精品一区二区| 亚洲精品国产精品乱码视色| 中美日韩在线网免费毛片视频| 国产成人久久精品激情| 国产成人高清精品免费鸭子| 久久精品中文闷骚内射| 国产精品青草视频免费播放 | 天天拍夜夜添久久精品| 柠檬福利精品视频导航| 精品特级一级毛片免费观看| 亚洲精品av无码喷奶水糖心| 久久国产精品范冰啊| 人妻偷人精品成人AV| jizz国产精品jizz中国| 国产精品久久久久久吹潮| 国产精品亚洲综合一区在线观看 | 国产精品特级毛片一区二区三区| 日韩精品中文字幕视频一区| 亚洲综合一区二区精品久久 | 久久精品中文字幕一区| 手机看片久久高清国产日韩| 8AV国产精品爽爽ⅴa在线观看| 国自产精品手机在线观看视频 | 国产精品久久久99| 亚洲精品456播放| 无码国模国产在线无码精品国产自在久国产 | 日韩精品成人一区二区三区| 亚洲视频国产精品| 久久久无码精品国产一区| 日韩免费在线观看| 在线观看日韩一区| 日韩免费观看一区| 日韩精品一区二区三区毛片| 日韩国产精品99久久久久久|