私はモバイルベースのウェブサイトを開発しています、そこで私はグーグルマップを統合しました、私はダイナミックにグーグルマップの '差出人'フィールドを埋める必要があります。
WebブラウザからGPSの位置を取得し、Google Mapの[From]フィールドに動的に入力することはできますか。
Geolocation API を使用すると、次のコードを使用するのと同じくらい簡単になります。
navigator.geolocation.getCurrentPosition(function(location) {
console.log(location.coords.latitude);
console.log(location.coords.longitude);
console.log(location.coords.accuracy);
});
GoogleのClient Location API を使用することもできます。
この問題は モバイルブラウザのGPS位置を検出することはできますか? and モバイルブラウザから位置データを取得する で説明されています。もっと情報があります。
ディスカッションを見る ブラウザでGPS座標を取得する方法
モバイルデバイスで動作するサンプルアプリケーション Where are I? へのリンクがあります。私は自分のAndroid上でそれをテストし、現在の座標を取得するためにGPSモジュールを起動しました。あなたは生きている例の源を分析することができます。
携帯からすばやくアクセスできるようにQRコードを作成しました。
もう少し具体的な答えを出す。 HTML5はあなたが地理座標を得ることを可能にします、そしてそれはかなりまともな仕事をします。全体的な位置情報のブラウザサポートはかなり良いです、ie7とie8(そしてopera mini)を除くすべての主要なブラウザ。 IE9はその仕事をしますが、最も悪い実行者です。チェックアウトcaniuse.com:
http://caniuse.com/#search=geol
また、あなたは彼らの場所にアクセスするためにあなたのユーザーの承認を必要とします、それであなたはこれをチェックしてそれがオフになった場合には適切な指示を与えることを確認してください特にIphoneにとってSafariの許可をオンにするのは少し面倒です。
これを使用すると、 http://www.w3schools.com/html/html5_geolocation.asp にすべての情報があります。
<script>
var x = document.getElementById("demo");
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} else {
x.innerHTML = "Geolocation is not supported by this browser.";
}
}
function showPosition(position) {
x.innerHTML = "Latitude: " + position.coords.latitude +
"<br>Longitude: " + position.coords.longitude;
}
</script>
GeoLocation API がありますが、ブラウザのサポートは現時点ではかなり薄いです。そのようなことを気にするほとんどのサイトはGeoIPデータベースを使用します(そのようなシステムの不正確さに関する通常の条件付きで)。また、 FireEagle のように、ユーザーの協力が必要なサードパーティのサービスを調べることもできます。
最新の 太い矢印関数 を使ってみましょう。
navigator.geolocation.getCurrentPosition((loc) => {
console.log('The location in lat lon format is: [', loc.coords.latitude, ',', loc.coords.longitude, ']');
})
観測できる
/*
function geo_success(position) {
do_something(position.coords.latitude, position.coords.longitude);
}
function geo_error() {
alert("Sorry, no position available.");
}
var geo_options = {
enableHighAccuracy: true,
maximumAge : 30000,
timeout : 27000
};
var wpid = navigator.geolocation.watchPosition(geo_success, geo_error, geo_options);
*/
getLocation(): Observable<Position> {
return Observable.create((observer) => {
const watchID = navigator.geolocation.watchPosition((position: Position) => {
observer.next(position);
});
return () => {
navigator.geolocation.clearWatch(watchID);
};
});
}
ngOnDestroy() {
this.sub.unsubscribe();
}