#php #javascript #xml
#php #JavaScript #xml
Вопрос:
Интересно, может ли кто-нибудь мне помочь, пожалуйста.
В настоящее время я использую приведенный ниже код (исходящий из nearby.org.uk ), чтобы позволить пользователю преобразовывать ссылки на сетку ОС в координаты широты и Спг с помощью HTML-формы.
function converttolatlng() {
var gr = document.getElementById('osgridref').value;
var osgb = new GT_OSGB();
if (osgb.parseGridRef(gr)) {
var wgs84 = osgb.getWGS84();
document.getElementById('osgb36lat').value = wgs84.latitude;
document.getElementById('osgb36lon').value = wgs84.longitude;
}
else {
document.getElementById('osgb36lat').value = "n/a";
document.getElementById('osgb36lon').value = "n/a";
}
}
Однако ежемесячно мне нужно конвертировать XML-список из примерно 22 000 ссылок на сетку ОС. Из-за большого объема задействованных данных, очевидно, нецелесообразно использовать HTML-форму, поэтому я работаю над способом автоматизации этого. Список создается в формате XML, поэтому я собрал приведенный ниже код для извлечения XML-данных в PHP.
<?
$objDOM = new DOMDocument();
$objDOM->load("xmlfile.xml");
$note = $objDOM->getElementsByTagName("Details");
foreach( $note as $value )
{
$NGR = $value->getElementsByTagName("NGR");
$ngr = $NGR->item(0)->nodeValue;
echo "$ngr <br>";
}
Теперь я дошел до того, что немного не уверен в том, что делать дальше. Я знаю, что мне нужно преобразовать ссылки на сетку с помощью функции Javascript и, кроме того, создать поля Lat amp; Lng, которые обычно были бы в моей HTML-форме. Затем мне нужно иметь возможность загружать эти данные в таблицу в базе данных MySQL.
Может быть, кто-нибудь, возможно, взглянет на это, пожалуйста, и покажет мне, что мне нужно для преобразования ссылок на сетку и как я могу загрузить их в свою базу данных.
Большое спасибо
Обновить
Это извлечение XML-файла:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
- <Root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <Details>
<LISTENTRY>1003886</LISTENTRY>
<NGR>SS 00000 11111</NGR>
</Details>
и, пожалуйста, найдите ссылку на файл ‘geotools’ здесь.
Комментарии:
1. Не может быть большой помощи без знания структуры XML-файла и кода, который составляет функцию
getWGS84
Javascript.2. Привет, большое спасибо за ответ на мой пост. Я добавил выдержку из XML-файла и ссылку на файл ‘geotools’, с которым работает функция JS, в мой исходный пост. Я не хотел вставлять весь файл целиком, так как это довольно длинный скрипт. С уважением
Ответ №1:
Передача через веб-сервис, как вы описываете, действительно должна быть вашим последним вариантом, возможно, этот php-код из проекта Geograph — это то, что вы ищете. Если нет, я бы посоветовал вам перевести код js на php.
РЕДАКТИРОВАТЬ: как интегрировать? Я бы начал с небольшого чтения на OSB36, чтобы понять, что на самом деле представляют собой 3 элемента <NGR>
и как их следует интерпретировать. Самая сложная часть — это перевод цифр сетки в смещение (вам нужно обратное osgb36_to_gridref
). Один из способов сделать это может быть получен из parseGridRef
geotools2.js
Комментарии:
1. Привет, большое спасибо за ответ на мой пост. Я взглянул на это, и, пожалуйста, извините мое невежество новичков в этом. Не могли бы вы сказать мне, пожалуйста, как я мог бы включить это, используя переменные в моем существующем скрипте? С уважением
2. Большое спасибо за обновление. Я посмотрю на geotools JS. С уважением