API геолокации на iPhone
Кто-нибудь знает, поддерживает ли iPhone или скоро поддержит спецификацию W3C Geolocation?
Я ищу для создания приложения для мобильных пользователей, но вместо того, чтобы тратить время на разработку приложений для каждой другой платформы (iPhone, Android и т.д.), я бы предпочел создать веб-приложение, которое использование стандарта W3C.
Ответы
Ответ 1
Этот код работал для меня - в браузере iPhone Safari, и в качестве дополнительного бонуса он даже работал с FireFox 3.5 на моем ноутбуке! Спецификация API Geolocation является частью стандартов Консорциума 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>
Ответ 2
Теперь вы можете получить местоположение от Javascript API в браузере Safari после выпуска iPhone 3.0 - мы создали рабочий пример @http://blog.bemoko.com/2009/06/17/iphone-30-geolocation-javascript-api/
Ответ 3
Начиная с iPhone OS 3.0 Safari поддерживает получение географического местоположения. См.: Справочная библиотека Safari: получение географических положений. С другой стороны, спецификация W3C Geo API все еще находится в стадии разработки.
Ответ 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 не будет комментировать будущие улучшения публики.