2010-08-22 2 views
4

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

+0

Я действительно хочу знать это ..... .....Кстати, какое устройство GPS вы используете для отправки данных – Starx

+0

Вы используете PHP на устройстве GPS или GPS-устройство, подключенное к вашему серверу? Если вы хотите получить данные о местоположении с клиентского устройства, вы не можете сделать это (кроме компиляции PHP с флагом --with-magic-gps) – Mchl

+0

@mchl его работающий php на устройствах. Могу ли я узнать больше о magic-gps? нет другого пути рядом с этим? – davidlee

ответ

3

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

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

/SRM

0

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

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

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

0

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

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

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

0

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

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

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

Смежные вопросы