получить широту и долготу от устройства GPS с php - PullRequest
4 голосов
/ 22 августа 2010

Как узнать широту и долготу устройства gps с помощью PHP? а не через JavaScript. Спасибо.

Ответы [ 5 ]

3 голосов
/ 06 января 2012

Если вы используете Linux, довольно просто общаться с GPS через последовательный порт ... Просто подключите GPS с помощью последовательного кабеля и активируйте протокол NMEA в GPS.

exec("stty -F /dev/ttyS0 9600 raw"); // Set the serial port parameters
if ( !$t = fopen('/dev/ttyS0','r+b') ) // Open for read
    die(" - Failed to open\n");

// Send some command...
fwrite($t,"Command\n");

while(true) {
    echo "recived: ".fgets($t,1024);
}

Данные NMEA выглядят так: $GPGLL,4916.45,N,12311.12,W,225444,A,*1D

На многих сайтах описано, как работает протокол NMEA, например http://www.gpsinformation.org/dale/nmea.htm

0 голосов
/ 16 декабря 2011

Ответ прост, это невозможно с PHP. Вы должны использовать любой язык сценариев клиента, если клиентский браузер поддерживает эту функцию.

Однако некоторую информацию вы можете получить, используя IP-адрес посетителя. Но это может не указывать точное местоположение, а только местоположение провайдера. (Google Analytics использует этот метод для определения местоположения посетителя), также вам нужна большая БД для IP для информации о местоположении или вам нужно получить БЕСПЛАТНУЮ / Платную услугу, предоставляющую информацию о местоположении с IP-адреса.

Надеюсь, это поможет!

0 голосов
/ 02 декабря 2011

Вы можете использовать Google Maps API.

Я знаю этот французский источник с примером кода, который легко понять: Геолокация в 5 строках PHP .

Но я не знаю, как вы можете получить названия городов и стран с вашего устройства GPS.

0 голосов
/ 09 декабря 2011

Действительно нужно знать больше о том, какое оборудование вы используете. В прошлом я проделал большую работу с GPS, и многие устройства GPS будут предоставлять вам данные GPS в стандартном формате данных NMEA, обычно через последовательный интерфейс RS232, с частотой около 1 Гц. NMEA не предоставляет вам все сложные данные, такие как эфемериды (с помощью которых вы можете начать делать действительно интересные вещи).

Вы сказали, что запускаете php на «устройстве», поэтому при условии, что данные GPS поступают через последовательный / USB-интерфейс, а чип GPS выдает данные NMEA, вам потребуется получить эти данные из последовательный порт. В PHP есть библиотека прямого ввода-вывода, которую вы можете использовать (http://us2.php.net/manual/en/intro.dio.php). Ознакомьтесь с этой статьей для получения более подробной информации Последовательная связь с PHP в Windows . Если интерфейс процессора к GPS не последовательный / USB I ' Я не знаю, как вы собираетесь получить это в php-стране.

Надеюсь, это поможет. Может быть, вы можете дать нам больше информации об оборудовании, которое вы используете?

0 голосов
/ 25 августа 2010

Я не думаю, что это возможно, все коммерческие модули GPS защищают необработанные данные (NMEI) от пользователя. Теперь, если вам нужны только данные о широте и долготе для определенного места, вам не нужен GPS. Вы можете использовать Google Maps для этого, если вы хотите использовать PHP, проверьте API, предоставляемые ESRI (http://www.esri.com/), NAVTEQ. Я использовал их давно, и они были довольно хорошими. Теперь, если вы хотите использовать Lat и Длинные данные о поле, которые вы, возможно, захотите приобрести в GPS-логгере (если вам нужны данные RAW NMEI), могут рассказать вам все офигенные вещи. Опять же, все зависит от того, что вы хотите и как вы хотите.

/ срм

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