Я пытаюсь загрузить некоторые маркеры в карты Google для моей веб-страницы.
У меня есть все маркеры в БД, и я беру их скриптом php. Этот скрипт выводит все данные в БД как json. Примерно так:
<?php
require_once("phpsqlajax_dbinfo.php"); //info for DB connection
// 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 coordY, coordX FROM contenedor WHERE peso = 12";
$result = mysql_query($query);
if (!$result) {
die('Invalid query: ' . mysql_error());
}
$x = 0;
while ($row = @mysql_fetch_assoc($result)){
$data[$x] = array("lat" => $row['coordY'], "lng" => $row['coordX']);
$x++;
}
echo json_encode($data);
?>
Мой файл json должен выглядеть так:
[{ "Лат": "А", "LNG": "В"}, { "ш": "С", "LNG": "Д"}, { "ш": "Е", "LNG": "F"}] // Символы латинские и длинные ...
После этого в другом файле (мой index.html) я создаю карту, например:
var map = new GMap2(document.getElementById("map_canvas"));
map.setCenter(new GLatLng(X, Y), 13); //X and Y are my lat and long
map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());
...
Я хочу создать функцию addMarket для загрузки всех моих маркеров. Но я не могу получить информацию из этого файла из JavaScript. Я хоть как то так:
for (var i = 0;i < file.length; i += 1) {
var lat = file[i].lat;
var lon = file[i].lng;
addMarker(lat,lon);
};
function addMarker(lat,lng){
var latlng = new google.maps.LatLng(lat,lng);
var marker = new google.maps.Marker({position: latlng, map: map});
Но я не знаю, как мне читать значения или получать их все в массиве.
Есть идеи?
Другой вопрос, который у меня возникает: можно ли загружать маркеры, когда я смотрю карту? Например, если один из моих маркеров изменяется во время просмотра, я хочу получить новое значение (например, изменение цвета ..) У меня есть функция addMarker внутри функции инициализации, я должен получить ее снаружи?
спасибо!