ホームページ  >  記事  >  ウェブフロントエンド  >  JS を使用して現在の地理的位置を取得するメソッド summary_javascript スキル

JS を使用して現在の地理的位置を取得するメソッド summary_javascript スキル

WBOY
WBOYオリジナル
2016-05-16 16:25:591186ブラウズ

今年のプロジェクト開発中に、私は最初に HTML5 を学びながら開発しましたが、これはインターネット製品には適していないことがわかりました。いくつかの関数を使用するだけです。モバイルWEB開発の過程で初めて測位機能に触れましたが、携帯電話での測位はブラウザ経由で行うことを初めて知りました。 「測位機能を有効にしますか?」というプロンプトが表示されます。上司はこのプロンプトを見て、それがユーザー エクスペリエンスにとって良くないと感じました。それが良くない場合は、別の方法で実装できます。これは大したことではありません。上司の表情が大きく変わり、こう言いました。「いいえ、これは経験があるはずです。」新しい機能をできるだけ早くリリースできるように、時間を急ぐためにこれを行っているのではありませんか?

1.携帯電話WEB測位方法:

コードをコピー コードは次のとおりです:

var getLocation = function (successFunc, errorFunc) { //successFunc は測位成功のコールバック関数を取得し、errorFunc は測位失敗のコールバックを取得します
//最初にデフォルトの都市を設定します
var defCity = {
id: '000001',
名前: '北京市'、
Date: curDateTime()//現在時刻の取得メソッド
};
//デフォルトの都市
$.cookie('VPIAO_MOBILE_DEFAULTCITY', JSON.stringify(defCity), { 有効期限: 1, パス: '/' });
If (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function (位置) {
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: '',
名前: addComp.province、
日付: curDateTime()
};
//現在地の都市
$.cookie('VPIAO_MOBILE_CURRENCITY', JSON.stringify(curCity), { 有効期限: 7, パス: '/' });
//alert(addComp.province ", " addComp.city ", " addComp.district ", " addComp.street);
If (successFunc != 未定義)
successFunc(addComp);
});
}、
関数 (エラー) {
スイッチ (error.code) {
ケース 1:
alert("位置情報サービスが拒否されました。");
休憩;
ケース 2:
alert("位置情報が一時的に取得できません。");
休憩;
ケース 3:
alert("位置情報の取得がタイムアウトしました。");
休憩;
デフォルト:
alert("不明なエラー。");
休憩;
}
var curCity = {
id: '000001',
名前: '北京'、
日付: curDateTime()
};
//デフォルトの都市
$.cookie('VPIAO_MOBILE_DEFAULTCITY', JSON.stringify(curCity), { 有効期限: 1, パス: '/' });
if (errorFunc != 未定義)
errorFunc(error);
}, { タイムアウト: 5000、enableHighAccuracy: true });
} else {
alert("お使いのブラウザは地理的位置情報の取得をサポートしていません。");
If (errorFunc != 未定義)
errorFunc("お使いのブラウザは地理的位置情報の取得をサポートしていません。");
}
};
var showPosition = 関数 (位置) {
var lat = 位置.座標.緯度;
var lon = 位置.座標.経度;
//var map = new BMap.Map("container") // Map インスタンスを作成します
var point = new BMap.Point(lon, lat) // ポイント座標を作成します
; var gc = 新しい BMap.Geocoder();
gc.getLocation(point, function (rs) {
var addComp = rs.addressComponents;
var curCity = {
id: '',
名前: addComp.province,
日付: curDateTime()
};
//現在地の都市
$.cookie('VPIAO_MOBILE_CURRENTCITY', JSON.stringify(curCity), { 有効期限: 7, パス: '/' });
//alert(addComp.province ", " addComp.city ", " addComp.district ", " addComp.street);
});
};
var showPositionError = 関数 (エラー) {
スイッチ (error.code) {
ケース 1:
alert("位置情報サービスが拒否されました。");
休憩;
ケース 2:
alert("位置情報が一時的に取得できません。");
休憩;
ケース 3:
alert("位置情報の取得がタイムアウトしました。");
休憩;
デフォルト:
alert("不明なエラー。");
休憩;
}
var curCity = {
id: '000001',
名前: '北京市'、
日付: curDateTime()
};
//デフォルトの都市
$.cookie('VPIAO_MOBILE_DEFAULTCITY', JSON.stringify(curCity), { 有効期限: 1, パス: '/' });
};

前提条件は、Baidu API を導入することです:

Sina インターフェースの使用: 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

コードをコピーします コードは次のとおりです:

<スクリプトタイプ="text/javascript">
$.getScript('http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js', function(_result) {
If (remote_ip_info.ret == '1') {
alert('国:'remote_ip_info.country'
県:'remote_ip_info.province'
市:'remote_ip_info.city'
地区:'remote_ip_info.district'
ISP:' remote_ip_info.isp '
タイプ:'remote_ip_info.type '
その他:'remote_ip_info.desc);
} else {
alert('一致する IP アドレス情報が見つかりません!');
}
});

NetEase Youdao IP アドレス インターフェイス (これはテストする必要があります)

http://www.youdao.com/smartresult-xml/search.s?type=ip&q=IPアドレス

淘宝網リクエストインターフェース (GET)

コードをコピーします コードは次のとおりです:

<スクリプト>
var ip = "124.127.108.133";
var url = "http://ip.taabao.com/service/getIpInfo.php?ip= ip;
$.getJSON(url, 関数 (json) {
var myprovince2 = json.data.area;
var mycity2 = json.data.region;
alert("あなたの都市は次のとおりです:" myprovince2 mycity2);
});

太平洋 IP アドレス データベース API インターフェイス

http://whois.pconline.com.cn/?ip=[ipアドレス文字列]

さらに: Google、Sohu などが提供する対応するインターフェースもあります。ご自身で試してみることもできます。

Sohu IP アドレス クエリ インターフェイス (デフォルト GBK): http://pv.sohu.com/cityjson

Sohu IP アドレスクエリインターフェース (エンコーディングを設定可能): http://pv.sohu.com/cityjson?ie=utf-8

Sohu の他の IP アドレス照会インターフェース: http://txt.go.sohu.com/ip/soip

3. クライアントIPメソッドの取得

コードをコピー コードは次のとおりです:

<スクリプト>
var url = 'http://chaxun.1616.net/s.php?type=ip&output=json&callback=?&_=' Math.random();
$.getJSON(url, function(data) {
アラート(data.Ip);
});

今日はここまでです。まだやるべきことがたくさんあります。時間があれば他のインターフェースも試してみてください。誰でも参加して、より良い方法を提供することを歓迎します。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:Javascript はノード (div) 名を実装します。次の記事:Javascript はノード (div) 名を実装します。

関連記事

続きを見る