iPhoneのGeolocation API
-
03-07-2019 - |
質問
iPhoneが W3C Geolocation仕様をサポートしているか、まもなくサポートするかを誰もが知っていますか?
モバイルユーザー向けのアプリを構築したいと考えていますが、さまざまなプラットフォーム(iPhone、Androidなど)向けのアプリの開発に時間を費やすのではなく、 W3C標準の使用。
解決
このコードは、私にとってはうまくいきました。iPhoneWebブラウザでは Safari のボーナスとして、 FireFox 3.5 ラップトップ! Geolocation API仕様は、W3コンソーシアムの標準の一部ですただし、注意してください:まだ最終決定されていません。
(source: bemoko.com )
(source: bemoko.com )
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Geolocation API Demo</title>
<meta content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" name="viewport"/>
<script>
function successHandler(location) {
var message = document.getElementById("message"), html = [];
html.push("<img width='256' height='256' src='http://maps.google.com/maps/api/staticmap?center=", location.coords.latitude, ",", location.coords.longitude, "&markers=size:small|color:blue|", location.coords.latitude, ",", location.coords.longitude, "&zoom=14&size=256x256&sensor=false' />");
html.push("<p>Longitude: ", location.coords.longitude, "</p>");
html.push("<p>Latitude: ", location.coords.latitude, "</p>");
html.push("<p>Accuracy: ", location.coords.accuracy, " meters</p>");
message.innerHTML = html.join("");
}
function errorHandler(error) {
alert('Attempt to get location failed: ' + error.message);
}
navigator.geolocation.getCurrentPosition(successHandler, errorHandler);
</script>
</head>
<body>
<div id="message">Location unknown</div>
</body>
</html>
他のヒント
iPhone 3.0のリリース後、safariブラウザでJavascript APIから位置を取得できるようになりました-動作例を作成しました@ http://blog.bemoko.com/2009/06/17/iphone-30-geolocation-javascript-api/
iPhone OS 3.0 Safariは、位置情報の取得をサポートしているため。参照: Safariリファレンスライブラリ:地理的位置の取得一方、W3C Geo API仕様はまだドラフトです。
Whirled Viewのコードを更新しました。私のiOS 4.3デバイスでうまく動作します。 Googleは、静的マップライブラリにアクセスするためにAPIキーを必要としなくなりました。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>iPhone 4.0 geolocation demo</title>
<meta content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" name="viewport"/>
<script>
function handler(location) {
var message = document.getElementById("message");
message.innerHTML ="<img src='http://maps.google.com/maps/api/staticmap?center=" + location.coords.latitude + "," + location.coords.longitude + "&zoom=14&size=256x256&maptype=roadmap&sensor=false&markers=color:blue%7Clabel:ABC%7C" + location.coords.latitude + "," + location.coords.longitude + "' />";
message.innerHTML+="<p>Longitude: " + location.coords.longitude + "</p>";
message.innerHTML+="<p>Accuracy: " + location.coords.accuracy + "</p>";
message.innerHTML+="<p>Latitude: " + location.coords.latitude + "</p>";
}
navigator.geolocation.getCurrentPosition(handler);
</script>
</head>
<body>
<div id="message">Location unknown</div>
</body>
</html>
このギャップが、Locatableアプリケーションを開発した理由です。これは、本質的にiPhone Safariのプラグインです。現在、ジェイルブレイクされた携帯電話でのみ利用可能です。
をご覧ください。iPhoneのJavaScriptでGPS情報を取得できます。 QuickConnectiPhoneフレームワークは、これとアクセラレーション情報を公開します。
この情報を取得するには、アプリケーションをデバイスにインストールする必要があります。このフレームワークは、ノキアだけでなく、Androidにインストールされたアプリケーションでも間もなく利用可能になります。
これらの各デバイスのフレームワークにアプリケーションを配置し、コンパイルして出荷できます。
QuickConnectiPhoneは https://sourceforge.net/projects/quickconnect/ で入手できます
そして私に連絡したら、AndroidとNokiaのプレリリースバージョンを提供できます。
ロードスは、「develop-once-run-everywhere」を約束しています。溶液。自分で試していない。
この小さなjavascriptライブラリはクロスプラットフォームであり、最新のスマートフォンをすべてサポートしています:
使用方法は次のとおりです。
//determine if the handset has client side geo location capabilities
if(geo_position_js.init()){
geo_position_js.getCurrentPosition(success_callback,error_callback);
}else{
alert("Functionality not available");
}
現在、JavaScript APIだけを使用してiPhoneのGPS位置を取得することはできません。これはいいだろうという話がありましたが、もちろんAppleは将来の改良についてはコメントしません。