Подтвердить что ты не робот

API геолокации на iPhone

Кто-нибудь знает, поддерживает ли iPhone или скоро поддержит спецификацию W3C Geolocation?

Я ищу для создания приложения для мобильных пользователей, но вместо того, чтобы тратить время на разработку приложений для каждой другой платформы (iPhone, Android и т.д.), я бы предпочел создать веб-приложение, которое использование стандарта W3C.

4b9b3361

Ответ 1

Этот код работал для меня - в браузере iPhone Safari, и в качестве дополнительного бонуса он даже работал с FireFox 3.5 на моем ноутбуке! Спецификация API Geolocation является частью стандартов Консорциума W3. Но имейте в виду : она еще не завершена.

alt text
(источник: bemoko.com)alt text
(источник: 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>

Ответ 4

Я обновил код MyWhirledView. Отлично работает на моем устройстве 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>

Ответ 5

Этот пробел - вот почему я разработал приложение Locatable - это, по сути, плагин для iPhone Safari. В настоящее время он доступен только для телефонов с джейлбрейком.

См. http://lbs.tralfamadore.com/

Ответ 6

Можно получить информацию GPS в JavaScript на iPhone. Структура QuickConnectiPhone предоставляет вам эту информацию, а также информацию об ускорении.

Чтобы получить эту информацию, вам нужно будет установить приложение на устройство. Эта система скоро будет доступна для установленных Android приложений, а также для Nokia.

Вы можете поместить свое приложение в фреймворк для каждого из этих устройств, скомпилировать и отправить.

QuickConnectiPhone доступен по адресу https://sourceforge.net/projects/quickconnect/

и если вы обратитесь ко мне, я могу дать вам предварительные версии для Android и Nokia.

Ответ 7

Rhodes обещает решение "развить-раз-везде". Не пробовал сам.

Ответ 8

Эта небольшая библиотека javascript является кросс-платформенной и поддерживает все современные смартфоны из коробки:

http://code.google.com/p/geo-location-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");
}

Ответ 9

В настоящее время невозможно получить позицию iPhone GPS с использованием только API-интерфейсов JavaScript. Были разговоры, что это было бы неплохо, но, конечно же, Apple не будет комментировать будущие улучшения публики.