Загрузите маркеры на карту Google из json php - PullRequest
0 голосов
/ 28 марта 2012

Я пытаюсь загрузить некоторые маркеры в карты 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 внутри функции инициализации, я должен получить ее снаружи?

спасибо!

1 Ответ

0 голосов
/ 28 марта 2012

Вы должны дать JSON имя, чтобы JS сделал его доступным, например:

echo 'file='.json_encode($data),';';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...