iPhone がW3C Geolocation 仕様をサポートしているか、またはすぐにサポートするかどうかを知っている人はいますか?
モバイル ユーザー向けのアプリを構築しようとしていますが、さまざまなプラットフォーム (iPhone、Android など) ごとにアプリの開発に時間を費やすよりも、 W3C 標準。
iPhone がW3C Geolocation 仕様をサポートしているか、またはすぐにサポートするかどうかを知っている人はいますか?
モバイル ユーザー向けのアプリを構築しようとしていますが、さまざまなプラットフォーム (iPhone、Android など) ごとにアプリの開発に時間を費やすよりも、 W3C 標準。
このコードは私にとってはうまくいきました。iPhone Web ブラウザのSafari で、さらにおまけとしてラップトップのFireFox 3.5でも動作しました。Geolocation API 仕様は、W3 コンソーシアムの標準の一部ですが、まだ最終決定されていないことに注意してください。
(出典: bemoko.com ) (出典: 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 から位置情報を取得できるようになりました。 API/
iPhone OS 3.0 以降、Safari は地理的位置の取得をサポートしています。参照: Safari リファレンス ライブラリ: 地理的位置の取得 一方、W3C Geo API 仕様はまだドラフト段階です。
I updated MyWhirledView's code. Works great on my iOS 4.3 device. Google no longer requires an API key to access their static map library.
<?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>
この小さな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");
}
Rhodesは、「一度開発すればどこでも実行できる」ソリューションを約束しています。自分で試したことはありません。
iPhoneではJavaScriptでGPS情報を取得することが可能です。QuickConnectiPhone フレームワークは、これと加速情報を公開します。
ただし、この情報を取得するには、デバイスにアプリケーションをインストールする必要があります。このフレームワークは、Nokia だけでなく、Android にインストールされたアプリケーションでもすぐに利用できるようになります。
これらの各デバイスのフレームワークにアプリケーションを配置し、コンパイルして出荷できます。
QuickConnectiPhone はhttps://sourceforge.net/projects/quickconnect/で入手できます。
ご連絡いただければ、Android と Nokia のプレリリース バージョンを提供できます。
現在、JavaScript API だけを使用して iPhone の GPS 位置を取得することはできません。これはいいことだという話はありましたが、もちろん Apple は将来の改善について公にコメントすることはありません。