首頁 web前端 js教程 使用JS取得目前地理位置方法彙總_javascript技巧

使用JS取得目前地理位置方法彙總_javascript技巧

May 16, 2016 pm 04:25 PM
js 地理位置

今年的專案開發中,初步接觸了行動端WEB開發,也就邊學習HTML5邊開發,主要使用了JQuery Mobile技術,發現這個不適合做網路產品,大部分樣式都需要重寫,只用了部分功能。手機端WEB開發過程中第一次接觸了定位功能,透過各大搜尋引擎發現手機端定位都是透過瀏覽器的定位,而用在PC端瀏覽器第一次會彈出提示“是否開啟定位功能” ,Boss看到這個提示,卻覺得對使用者的體驗效果不好,不好那我換一種方式實現不就好了,這又不是多大的事,而Boss的臉色就大變,就說:不應該有這樣的體驗。我們這樣做不都是為了趕時間,能夠盡快發布新功能嘛。

  1.手機WEB定位方法:

複製程式碼 程式碼如下:

var getLocation = function (successFunc, errorFunc) { //successFunc取得定位成功回呼函數,errorFunc取得定位失敗回呼
    //先設定預設城市
    var defCity = {
        id: '000001',
        name: '北京市',
        date: curDateTime()//取得目前時間方法
    };
    //預設城市
    $.cookie('VPIAO_MOBILE_DEFAULTCITY', JSON.stringify(defCity), { expires: 1, path: '/' });
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(function (position) {
            var lat = position.coords.latitude;
            var lon = position.coords.longitude;
            //var map = new BMap.Map("container");   // 建立Map實例
            var point = new BMap.Point(lon, lat); // 建立點座標
            var gc = new BMap.Geocoder();
            gc.getLocation(point, function (rs) {
                var addComp = rs.addressComponents;
                var curCity = {
                    id: '',
                    name: addComp.province,
                    date: curDateTime()
                };
                //目前定位城市
                $.cookie('VPIAO_MOBILE_CURRENTCITY', JSON.stringify(curCity), { expires: 7, path: '/' }))
;
;                 if (successFunc != undefined)
                    successFunc(addComp);
            });
        },
        function (error) {
            switch (error.code) {
                case 1:
                    alert("位置服務被拒絕。");
                    break;
                case 2:
                    alert("暫時取得少於位置資訊。");
                    break;
                case 3:
                    alert("取得位置資訊逾時。");
                    break;
                default:
                    alert("未知誤差。");
                    break;            }
            var curCity = {
                id: '000001',
                name: '北市',
                date: curDateTime()
            };
            //預設城市
            $.cookie('VPIAO_MOBILE_DEFAULTCITY', JSON.stringify(curCity), { expires: 1, path: '/' });
            if (errorFunc != undefined)
                errorFunc(error);
        }, { timeout: 5000, enableHighAccuracy: true });
    } else {
        alert("你的瀏覽器不支援取得地理位置資訊。");
        if (errorFunc != undefined)
            errorFunc("你的瀏覽器不支援取得地理位置資訊。");
    }
};
var showPosition = function (position) {
    var lat = position.coords.latitude;
    var lon = position.coords.longitude;
    //var map = new BMap.Map("container");   // 建立Map實例
    var point = new BMap.Point(lon, lat); // 建立點座標
    var gc = new BMap.Geocoder();
    gc.getLocation(point, function (rs) {
        var addComp = rs.addressComponents;
        var curCity = {
            id: '',
            name: addComp.province,
            date: curDateTime()
        };
        //目前定位城市
        $.cookie('VPIAO_MOBILE_CURRENTCITY', JSON.stringify(curCity), { expires: 7, path: '/' });
        //alert(addComp.province ", " addComp.city ", " addComp.district ", " addComp.street);
    });
};
var showPositionError = function (error) {
    switch (error.code) {
        case 1:
            alert("位置服務被拒絕。");
            break;
        case 2:
            alert("暫時取得少於位置資訊。");
            break;
        case 3:
            alert("取得位置資訊逾時。");
            break;
        default:
            alert("未知誤差。");
            break;
    }
    var curCity = {
        id: '000001',
        name: '北京市',
        date: curDateTime()
    };
    //預設城市
    $.cookie('VPIAO_MOBILE_DEFAULTCITY', JSON.stringify(curCity), { expires: 1, path: '/' });
};

前提要引入百度API:

  2.PC端透過IP實作方法:

  採用騰訊提供的接口,這個目前已經不能使用了  

複製程式碼 程式碼如下:

>

  採用新浪介面: http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js

  多地域測試方法:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=127.0.0.1

複製程式碼 程式碼如下:


  網易有道IP位址介面(這個有待測試)

  http://www.youdao.com/smartresult-xml/search.s?type=ip&q=IP位址

     淘寶請求介面(GET)

複製程式碼 程式碼如下:

<script><br /> var ip = "124.127.108.133";<br />             var url = "<a href="http://ip.taobao.com/service/getIpInfo.php&#63;ip">http://ip.taobao.com/service/getIpInfo.php?ip=" ip;<br />             $.getJSON(url, function (json) {<br />                 var myprovince2 = json.data.area;<br />                 var mycity2 = json.data.region;<br />                 alert("您所在的城市為:" myprovince2 mycity2);<br />             });<br /> </script>

  太平洋IP位址庫API介面

  http://whois.pconline.com.cn/?ip=[ip位址字串]

  另外:還有google、搜狐等提供對應的接口,大家可以自己試試看。

  搜狐IP位址查詢介面(預設GBK):http://pv.sohu.com/cityjson

     搜狐IP位址查詢介面(可設定編碼):http://pv.sohu.com/cityjson?ie=utf-8

     搜狐另外的IP位址查詢介面:http://txt.go.sohu.com/ip/soip

  3.取得客戶端IP方法

複製程式碼 程式碼如下:

<script><br /> var url = 'http://chaxun.1616.net/s.php?type=ip&output=json&callback=?&_=' Math.random();<br />             $.getJSON(url, function(data) {<br />                 alert(data.Ip);<br />             });<br /> </script>
  

  今天就寫到這裡吧,還有好多工作要去完成,等有時間了可以試試其它接口。歡迎大家來拍磚,提供更好的方法。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何修改抖音IP屬地 如何修改抖音IP屬地 May 04, 2024 pm 04:36 PM

是的,您可以修改抖音 IP 屬地,方法如下:開啟抖音,編輯個人資料。修改城市訊息,選擇您要顯示的城市或地區。登出並重新登錄,使修改生效。

高德地圖是不是要手機註冊 高德地圖是不是要手機註冊 May 05, 2024 pm 05:12 PM

是的,為了安全保障、個人化服務和帳號管理,高德地圖需要使用手機號碼註冊。註冊步驟包括:開啟高德地圖應用,點擊“我的”和“登入/註冊”,選擇手機號碼註冊,輸入手機號碼取得驗證碼,設定密碼即可完成註冊。

微博怎麼發圖片和影片一起 微博怎麼發圖片和影片一起 May 03, 2024 am 01:15 AM

微博同時發布圖片和影片的操作步驟如下:選擇相關或互補的圖片和影片。打開微博客戶端並點擊發布按鈕。選擇“圖片和影片”標籤。新增圖片和影片(最多9張圖片及1個影片)。輸入文字內容並新增相關資訊。發布即可。

抖音推薦怎麼重新設定?如何把推薦改為精選? 抖音推薦怎麼重新設定?如何把推薦改為精選? May 08, 2024 pm 03:52 PM

抖音作為一個以短影片為主的社群平台,推薦演算法是其核心功能之一。它能夠根據用戶的興趣和行為,推薦相關的影片內容。有時使用者可能想要重新設定推薦演算法,以獲得更符合自己喜好的內容。那麼,抖音推薦怎麼重新設定呢?抖音如何把推薦改為精選?本文將為您解答這兩個問題。一、抖音推薦怎麼重新設定? 1.開啟抖音APP,進入個人首頁。 2.點選右上角的「設定」圖標,進入設定頁面。 3.在設定頁面,找到「建議管理」選項,點選進入。 4.在推薦管理頁面,你可以看到自己的興趣標籤和興趣偏好。你可以依照自己的喜好,選擇或取消選擇不同的

抖音如何更改建議設定 抖音如何更改建議設定 May 04, 2024 am 12:06 AM

可以透過更改「內容偏好」設定來更改抖音推薦,包括調整推薦影片類型、追蹤有興趣的創作者、封鎖不喜歡的內容、設定影片語言、地理位置限制、熱門話題追蹤和清除搜尋/瀏覽記錄。

抖音如何修改位置權限 抖音如何修改位置權限 May 03, 2024 pm 11:24 PM

修改抖音位置權限的步驟:1. 開啟抖音應用,點選「我」。 2. 點選右上角的「三橫槓圖示」。 3. 選擇“設定”。 4. 找到“隱私設定”,並點選。 5. 點選「定位服務」。 6. 根據需要選擇「允許使用定位」或「僅在使用時詢問」。 7. 修改後需重啟抖音應用才能生效。

抖音的IP位址是怎麼顯示的? IP位址顯示的是即時位置嗎? 抖音的IP位址是怎麼顯示的? IP位址顯示的是即時位置嗎? May 02, 2024 pm 01:34 PM

用戶在抖音不僅可以觀看各種有趣的短視頻,還可以發布自己拍攝的作品,與全國乃至全球的網友互動。在這個過程中,抖音的IP位址顯示功能引起了廣泛關注。一、抖音的IP位址是怎麼顯示的?抖音的IP位址顯示功能主要是透過地理位置定位服務來實現的。當使用者在抖音上發布或觀看影片時,抖音會自動取得使用者的地理位置資訊。這個過程主要分為以下幾個步驟:首先,用戶啟用抖音應用程式並允許應用程式存取其地理位置資訊;其次,抖音使用定位服務來獲取用戶的地理位置資訊;最後,抖音將用戶的地理位置資訊與其發布或觀看的影片資料相關聯,並將

如何變更抖音時區設定 如何變更抖音時區設定 May 04, 2024 am 01:57 AM

無法變更抖音時區設置,時區將基於目前地理位置自動設定。

See all articles