API геолокации на iPhone - PullRequest
       38

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

39 голосов
/ 21 октября 2008

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

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

Ответы [ 9 ]

46 голосов
/ 16 июля 2009

Этот код работал для меня - в веб-браузере iPhone Safari и в качестве дополнительного бонуса он даже работал с FireFox 3.5 на моем ноутбуке! Спецификация Geolocation API является частью стандартов Консорциума 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>
7 голосов
/ 19 июня 2009

Теперь вы можете получить местоположение из API Javascript в браузере Safari после выпуска iPhone 3.0 - мы создали рабочий пример @ http://blog.bemoko.com/2009/06/17/iphone-30-geolocation-javascript-api/

5 голосов
/ 16 декабря 2009

Начиная с iPhone OS 3.0 Safari поддерживает получение географического местоположения. См .: Справочная библиотека Safari: получение географических местоположений С другой стороны, спецификация W3C Geo API все еще находится в стадии разработки.

2 голосов
/ 18 марта 2011

Я обновил код 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>
0 голосов
/ 21 января 2012

Эта небольшая библиотека 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");
}
0 голосов
/ 09 мая 2009

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

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

0 голосов
/ 05 февраля 2009

Родос обещает решение "разрабатывайся один раз везде". Сам не пробовал.

0 голосов
/ 07 декабря 2008

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

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

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

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

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

0 голосов
/ 21 октября 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...