Javascript 标记不';不要加载谷歌地图,

Javascript 标记不';不要加载谷歌地图,,javascript,google-maps-api-3,codeigniter-3,Javascript,Google Maps Api 3,Codeigniter 3,我正在尝试从数据库加载标记,但这些标记未加载。但是,如果我尝试手动加载它的工作 my view_file.php var map; function initialize(lt,lg) { var mapDiv = document.getElementById('map-canvas'); map = new google.maps.Map(mapDiv, { center: new google.maps.LatLng(lt, lg), zoo

我正在尝试从数据库加载标记,但这些标记未加载。但是,如果我尝试手动加载它的工作

my view_file.php

  var map;
  function initialize(lt,lg) {
    var mapDiv = document.getElementById('map-canvas');
    map = new google.maps.Map(mapDiv, {
      center: new google.maps.LatLng(lt, lg),
      zoom: 7,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    });
      <?php foreach ($position as $row) { ?>
            $lat = $row['lat'];
            $longi = $row['longi'];
            var latLng = new google.maps.LatLng($lat,$longi);
            new google.maps.Marker({
                position: latLng,
                map: map
            })
        <?php } ?>
  }
</script>
</head>
<body onload="initialize(-0.165343, 113.930935)">
<div id="map-canvas" style="width: 100%; height: 600px"></div>  
my model maps.php

function marker(){
    $post = $this->db->get('koor');
    return $post->result();
}
以下代码为works(手动输入坐标)。控制器同上

var map;
  function initialize(lt,lg) {
    var mapDiv = document.getElementById('map-canvas');
    map = new google.maps.Map(mapDiv, {
      center: new google.maps.LatLng(lt, lg),
      zoom: 7,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    });
    marker(-0.735467, 110.521677);
    marker(1.549480, 116.124705);
    marker(-2.558367, 115.179880);
  }

   function marker(lt,lg){
      var latLng = new google.maps.LatLng(lt,lg);
      var marker = new google.maps.Marker({
        position: latLng,
        map: map
      });
  }
</script>
</head>
<body onload="initialize(-0.165343, 113.930935)">
<div id="map-canvas" style="width: 100%; height: 600px"></div>  
var映射;
函数初始化(lt、lg){
var mapDiv=document.getElementById('map-canvas');
map=新的google.maps.map(mapDiv{
中心:新google.maps.LatLng(lt,lg),
缩放:7,
mapTypeId:google.maps.mapTypeId.ROADMAP
});
标记(-0.735467,110.521677);
标记(1.549480116.124705);
标记(-2.558367,115.179880);
}
功能标记(lt、lg){
var latLng=新的google.maps.latLng(lt,lg);
var marker=new google.maps.marker({
位置:latLng,
地图:地图
});
}
我试图修改我的代码,搜索类似的问题,但没有任何效果,这是我的代码的最后一个形状

更新

我已经解决了这个问题

 var map;
 function initialize() {
    var mapDiv = document.getElementById('map-canvas');
    map = new google.maps.Map(mapDiv, {
      center: new google.maps.LatLng(-0.165343, 113.930935),
      zoom: 7,
      mapTypeId: google.maps.MapTypeId.ROADMAP
 });
    var lat, longi, marker;
    <?php foreach ($position as $row) { ?>
        lat = <?php echo $row->lat ?>,
        longi = <?php echo $row->longi ?>,

        marker = new google.maps.LatLng(lat,longi);
        new google.maps.Marker({
            position: marker,
            map: map
        });
    <?php } ?>
}
var映射;
函数初始化(){
var mapDiv=document.getElementById('map-canvas');
map=新的google.maps.map(mapDiv{
中心:新google.maps.LatLng(-0.165343113.930935),
缩放:7,
mapTypeId:google.maps.mapTypeId.ROADMAP
});
宽变型、长变型、标记型;
纬度=,
longi=,
marker=新的google.maps.LatLng(lat,longi);
新的google.maps.Marker({
位置:标记器,
地图:地图
});
}
您的错误:

$lat = $row['lat'];
$longi = $row['longi'];
这显示在javascript中。 确保它是用php而不是javascript执行的

正确的代码:

<?php
    $lat = $row['lat'];
    $longi = $row['longi'];
?>

var映射;
函数初始化(lt、lg){
var mapDiv=document.getElementById('map-canvas');
map=新的google.maps.map(mapDiv{
中心:新google.maps.LatLng(lt,lg),
缩放:7,
mapTypeId:google.maps.mapTypeId.ROADMAP
});
拉特变幅,长变幅;
lat=;
longi=;
标记(横向、纵向);
}
功能标记(lt、lg){
var latLng=新的google.maps.latLng(lt,lg);
var marker=new google.maps.marker({
位置:latLng,
地图:地图
});
}

谢谢您的快速回复,是的,这是我的错,我已经按照您的建议修复了,但是地图页面是空白的。在浏览器控制台日志中不加载任何内容。是否确定
$row['lat']
$row['longi']
的值正确?请获取
var_dump
并查看值我确保这些值是正确的,var_哑数组的结果(1){[“位置”=>array(2){[0]=>object(stdClass){23(2){[“lat”]=>string(10)'-1.254474747474742”[“longi”]=>string(11)“116.8599428”}[1]=>object 24(2){“lat”=>string(9)+-1.258”=>string(11)“longi 86”[.009}}在您的
var_dump
中,我看到
$row
stdClass
,因此您必须使用
$row->lat
$row->longi
现在我在浏览器控制台中遇到一个错误,Uncaught SyntaxError:Unexpected token var。至少出现了错误。哈哈谢谢你的快速回复,是的,这是我的错,我已经按照你和赛义德的建议解决了这个问题,但是网页没有在浏览器控制台加载任何东西。
<?php
    $lat = $row['lat'];
    $longi = $row['longi'];
?>
  var map;
  function initialize(lt,lg) {
    var mapDiv = document.getElementById('map-canvas');
    map = new google.maps.Map(mapDiv, {
      center: new google.maps.LatLng(lt, lg),
      zoom: 7,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    });

      var lat, longi;

      <?php foreach ($position as $row) { ?>

            lat = <?= $row->lat ?>;
            longi = <?= $row->longi ?>;
            marker(lat, longi);

        <?php } ?>
  }

  function marker(lt,lg){
      var latLng = new google.maps.LatLng(lt,lg);
      var marker = new google.maps.Marker({
        position: latLng,
        map: map
      });
  }
</script>
</head>
<body onload="initialize(-0.165343, 113.930935)">
<div id="map-canvas" style="width: 100%; height: 600px"></div>