2

В настоящее время у меня есть задача интегрировать некоторые данные GPS, хранящиеся в базе данных MySQL с Google Earth. Цель состоит в том, чтобы создать меток/путевых точек этих показаний и отобразить их на google earth.Проблема с преобразованием чтения GPS Garmin в подходящий формат для API Google Earth

Я столкнулся с задачей и наткнулся на статью: «Приложение с базой данных с землей: с использованием PHP & MySQL с API Земли».

Расположенный в URL:

https://developers.google.com/earth/articles/phpsqlearth 

Я последовала за ним успешно; пока я не добрался до места, где мне нужно было создать отметки . Основная проблема заключается в том, что функция «createPlacemark» имеет следующую подпись:

"createPlacemark(name,address,type,lat,lng)" . 

Моя главная точка беспокойства является lat и lng аргументы (широта и долгота), так как данные GPS в базе данных все в формате:

 "N5 bb.xxx E8 cc.yyy". 

Не хранились отдельные данные о долготе или широте. Данные составляют , собранные через garmin gps. Я думал, что, возможно, я мог бы решить эту проблему, делает это:

var point = ge.createPoint('N5 bb.xxx E8 cc.yyy ') , 

и забыть о

point.setLatitude(parseFloat(lat)) 

и

point.setLongitude(parseFloat(lng)) statements. 

Однако, я хотел бы подтвердить, если я был на правильном пути, увидев, что я буду вдалеке от моей машины разработки на несколько дней.

ответ

1

Нет, вызывая метод GEPlugin createPoint как вы его

var point = ge.createPoint('N5 bb.xxx E8 cc.yyy'); 

бы создать точку с идентификатором N5 bb.xxx E8 cc.yyy - метод createPoint только принимает один параметр строки и используется для установки ID из объект.

Как у вас есть результирующая точка KML будет выглядеть следующим образом:

<Point id="N5 bb.xxx E8 cc.yyy"> 
</Point> 

Вы должны были бы назвать один или несколько методов по фактической точке объекта, который создается для установки данных широты и долготы. Либо point.set(), либо point.setLatitude() и point.setLongitude() - вы тогда, наконец, установили бы точку в геометрии меток, чтобы она работала.

глядя на все, что вам действительно нужно сделать, это разобрать GPS-навигатор Garmin, используя простую функцию. Простое разделение строки с использованием пробела должно работать нормально.

//parse a string in the Garmin format "N5 bb.xxx E8 cc.yyy" 
    //returns a kmlpoint 
    function gpsToPoint(data) { 
    var parts = data.split(' '); 
    var point = ge.createPoint(''); 
    point.setLatitude(parseFloat(parts[1])); 
    point.setLongitude(parseFloat(parts[3])); 
    return point; 
    } 

Тогда просто изменить функцию createPlacemark так, что вы создаете точечный объект с новым gpsToPoint() метода прохождения в данных Garmin.

Это даст вам KML как

<Point> 
    <coordinates>bb.xxx,cc.yyy,0</coordinates> 
</Point> 

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

  • Нет связанных вопросов^_^