尝试使用 JSON 加载谷歌地图 V3 标记


Trying to load google maps V3 markers using Json

好的,我有一个名为 $datos 的 PHP 变量,来自这样的 mysql 查询

[{"id_marcador":"1","posicion_marcador":"43.011781,-7.55736","titulo_marcador":"Centro de Lugo","dia":"si"},   {"id_marcador":"2","posicion_marcador":"42.991245,-7.545051","titulo_marcador":null,"dia":"no"},{"id_marcador":"3","posicion_marcador":"43.023336,-7.568511","titulo_marcador":null,"dia":"si"},{"id_marcador":"4","posicion_marcador":"42.989965,-7.547188","titulo_marcador":null,"dia":"si"},{"id_marcador":"5","posicion_marcador":"42.989589770827806, -7.547167422409075","titulo_marcador":null,"dia":"si"},{"id_marcador":"6","posicion_marcador":"43.020283,-7.533301","titulo_marcador":"HULA mostrador de citas","dia":"si"},{"id_marcador":"7","posicion_marcador":"43.021092,-7.533697","titulo_marcador":"HULA consultas","dia":"si"},{"id_marcador":"8","posicion_marcador":"43.013792,-7.557657","titulo_marcador":"Recreo plaza de Ferrol","dia":"si"},{"id_marcador":"9","posicion_marcador":"43.024084,-7.567178","titulo_marcador":"El Afilador","dia":"si"},{"id_marcador":"10","posicion_marcador":"43.005945,-7.555733","titulo_marcador":null,"dia":"si"},{"id_marcador":"11","posicion_marcador":"43.005384,-7.555138","titulo_marcador":null,"dia":"si"}]

这个变量将返回到 Json 形式,现在我必须将此值放入 googlemaps 标记格式中,如下所示:

var ID_MARCADOR = new google.maps.Marker(
{
    position: new google.maps.LatLng (POSICION_MARCADOR),
    map: map,
    title: 'TITULO_MARCADOR',
    icon: 'iconos/gente.png'
});
var ID_MARCADOR = new google.maps.InfoWindow(
{
   content:'TITULO_MARCADOR'
});
google.maps.event.addListener(ID_MARCADOR,'click',       function{popID_MARCADOR.open(map,ID_MARCADOR);})

所以问题是...如何生成所有标记以及如何在地图中初始化它们?也许使用这样的东西?

JSONsuccess: function(data){
   results(data);
function results(data) 
{
  $.each(data,function(index,value)
  {
    var data[0] = new google.maps.Marker(
     {
       position: new google.maps.LatLng (data[1]),
       map: map,
       title: data[2],
       icon: 'iconos/gente.png'
       ETC...
       ETC...
      });
 }

感谢您的回答和帮助! =D

立即引起我注意的一件事是,您声明了两个具有相同名称的不同变量:ID_MARCADOR 。看起来您打算将InfoWindow声明为:popID_MARCADOR .但除此之外,你的方法看起来不错(尽管我的 PHP 很生疏)。

好的问题

解决了=D 这是正确的代码。从数据库接收 JSON 数据

$.getJSON("automatizar1.php",{que:'marcadores'},function(json)
{
   marcadores(json);          
});

数组格式:

{"id_marcador":"1","lat_marcador":"43.0118","long_marcador":"-7.55736","titulo_marcador":"Centro de Lugo","tipo_marcador":"trafico","nombre_mp3":"centro","dia":"si"}

魔术功能

function marcadores(json)
 {
      $.each(json,function(index,value)
      { 
            var id ="a"+json[index].id_marcador;
            var popid="pop"+json[index].id_marcador;
            var lat=json[index].lat_marcador;
            var long=json[index].long_marcador;
            var titulo=json[index].titulo_marcador;
            var icono=json[index].tipo_marcador;

            id = new google.maps.Marker(
            {
              position: new google.maps.LatLng (lat, long),
              map: map,
              title: titulo,
              icon: 'iconos/'+icono+'.png'
            }); 

            popid = new google.maps.InfoWindow(
            {
                content:'mycontent'
            });
            google.maps.event.addListener(id,'click', function(){popid.open(map,id);});     
      });
}