Получить широту и долготу от gps-устройства с помощью php

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

5 ответов

Если вы используете 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


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

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

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


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

/srm


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

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

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


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

Вы сказали, что используете php на "устройстве", поэтому, учитывая, что данные GPS поступают через интерфейс serial/usb, а чип GPS дает вам данные NMEA, тогда вам нужно будет получить эти данные из последовательный порт. PHP имеет прямую библиотеку IO, которую вы можете использовать (http://us2.php.net/manual/en/intro.dio.php). Зачитайте это сообщение для более подробной информации Последовательный комм с PHP в Windows. Если процессор к интерфейсу GPS не является серийным /usb, я не знаю, как вы собираетесь получить его на землях php.

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

licensed under cc by-sa 3.0 with attribution.