Карта гидрометеорологических данных

Сегодня мы рассмотрим, как создать карту гидрометеорологических данных)

Столько популярный сервис Google Maps (не знаю API, не API) не спроста стал таким популярным.
Интеграция данного сервиса на любой сайт занятие вполне реализуемое, необходимо только получить код API, который позволяет получать данные с серверов Гугл. Как получить этот Api при необходимости мы тоже рассмотрим.

Так вот, этот сервис позволяет просматривать карту Гугл с координатами или по координатам местности. Этот же сервис сделал дополнение, которое позволяет накладывать данные по координатам слоями, если можно так сказать. Т.е. Можно добавлять данные, которые мы имеем в таблице базы данных MYSQL, на карту Гугл. Для этого посредством ПХП какого-то скрипта, мы делаем следующие вещи:

Кстати, наша база данных:

CREATE TABLE `markers` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`name` VARCHAR( 60 ) NOT NULL ,
`address` VARCHAR( 80 ) NOT NULL ,
`lat` FLOAT( 10, 6 ) NOT NULL ,
`lng` FLOAT( 10, 6 ) NOT NULL ,
`type` VARCHAR( 30 ) NOT NULL
) ENGINE = MYISAM ;

Дальше, вот эта радость парсит из нашей бд в хмл файл наши данные:

create_element(“markers”);
$parnode = $doc->append_child($node);

// Opens a connection to a MySQL server
$connection=mysql_connect (‘localhost’, $username, $password);
if (!$connection) {
die(‘Not connected : ‘ . mysql_error());
}

// Set the active MySQL database
$db_selected = mysql_select_db($database, $connection);
if (!$db_selected) {
die (‘Can\’t use db : ‘ . mysql_error());
}

// Select all the rows in the markers table
$query = “SELECT * FROM markers WHERE 1”;
$result = mysql_query($query);
if (!$result) {
die(‘Invalid query: ‘ . mysql_error());
}

header(“Content-type: text/xml”);

// Iterate through the rows, adding XML nodes for each
while ($row = @mysql_fetch_assoc($result)){
// Add to XML document node
$node = $doc->create_element(“marker”);
$newnode = $parnode->append_child($node);

$newnode->set_attribute(“name”, $row[‘name’]);
$newnode->set_attribute(“address”, $row[‘address’]);
$newnode->set_attribute(“lat”, $row[‘lat’]);
$newnode->set_attribute(“lng”, $row[‘lng’]);
$newnode->set_attribute(“type”, $row[‘type’]);
}

$xmlfile = $doc->dump_mem();
echo $xmlfile;

?>

Дальше, данные из ХМЛ, мы загружаем и отображаем в Гугл карте:

downloadUrl(‘https://storage.googleapis.com/mapsdevsite/json/mapmarkers2.xml’, function(data) {
var xml = data.responseXML;
var markers = xml.documentElement.getElementsByTagName(‘marker’);
Array.prototype.forEach.call(markers, function(markerElem) {
var name = markerElem.getAttribute(‘name’);
var address = markerElem.getAttribute(‘address’);
var type = markerElem.getAttribute(‘type’);
var point = new google.maps.LatLng(
parseFloat(markerElem.getAttribute(‘lat’)),
parseFloat(markerElem.getAttribute(‘lng’)));

var infowincontent = document.createElement(‘div’);
var strong = document.createElement(‘strong’);
strong.textContent = name
infowincontent.appendChild(strong);
infowincontent.appendChild(document.createElement(‘br’));

var text = document.createElement(‘text’);
text.textContent = address
infowincontent.appendChild(text);
var icon = customLabel[type] || {};
var marker = new google.maps.Marker({
map: map,
position: point,
label: icon.label
});

Ну и где-то мы эту карту должны показать, на какой-то странице, ниже есть ссылка на более подробную информацию. Но эту статью написал для того, чтобы показать, что существует доступный и подробно описанный функционал, который позволяет данные из MYSQL таблицы передавать в динамическом режиме в Гугл карту.

Как функционирует MYSQL база данных, получающая постоянно данные с метеорологических станций, мы рассмотрим в следующий раз)

Ссылка на материал по карте Гугл:

https://developers.google.com/maps/documentation/javascript/mysql-to-maps

Please follow and like us:
0
Карта гидрометеорологических данных

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Перейти к верхней панели