使用PHP、JavaScript和JSON添加地图标记

3

我尝试使用PHP从MySQL中检索标记,然后通过json_encode()将其结果用于JavaScript中。目前地图已经显示出来了,但是标记没有显示!

MarkersController.php - 从数据库中获取信息。

$list = array();

while ($row = mysqli_fetch_assoc($result)) {
    $list[] = array(
        array('lat' => $lat), 
        array('lng' => $lng));
}
echo json_encode($list);

Landing.html

<script type="text/javascript" src="js/jquery-1.11.2.js"></script>
                    <script type = "text/javascript"
                            src = "https://maps.googleapis.com/maps/api/js?
                            key=AIzaSyB76xBqfQdgOLV77VK3JZ09vWwk8brkMFs">
                    </script>
                    <script type="text/javascript">
                                var map = null;
                                function addMarker(lat, lng) {
                                var myLatLng = new google.maps.LatLng(lat, lng);
                                        marker = new google.maps.Marker({
                                        position: myLatLng,
                                                map: map
                                        });
                                }


                        function initialize() {
                        var mapOptions = {
                        center: {lat: 54.872128, lng: - 6.284874},
                                zoom: 13
                        };
  map = new google.maps.Map(document.getElementById('map-canvas'),
                                        mapOptions);

        $.getJSON('MarkersController.php', function(data){
                                $.each(data, function(lat, lng){
                                addMarker('lat', 'lng');
                                });
                                })
                            }
          google.maps.event.addDomListener(window, 'load', initialize);

                    </script>

尝试使用MarkersController.php中的数组实现addMarker()函数。

它们为什么“不工作”?你的控制台有任何错误吗? - Rowland Shaw
1
如果您将从$.getJSON接收到的输出显示给MarkersController.php,那么我们就可以知道问题出在哪里。 - Gisheri
@RowlandShaw 我的控制台没有错误,并且标记没有显示在地图上! - fst104
1个回答

0
试试在你的echo之前加上 header('Content-Type: application/json'); ,否则你从服务器得到的结果将会是纯文本。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接