0

初始化地图后,我正在尝试在地图上绘制标记。但是我需要知道中心点 lng lats。

我已经尝试使用这两种方法,但是在 chrome js 中出现“未捕获 RangeError:超出最大调用堆栈大小”;

$('#map_canvas').gmap('get', 'map').getCenter()); and also 
$('#map_canvas').gmap('option', 'center');

<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>
<script type="text/javascript" src="jquery-ui-map-3.0-rc/ui/jquery.ui.map.js"></script>
<script type="text/javascript" src="jquery-ui-map-3.0-rc/ui/jquery.ui.map.extensions.js"></script>
<script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" />

<script>
$('#map_page').live("pageshow", function() {
    function add_markers() {
        var location = $('#map_canvas').gmap('option', 'center');
    $.getJSON( 'http://localhost/motherly/android/index.php/api/venues?lat=' + location.lat() + '&lng=' + location.lng(), function(data) { 

        console.log(data['response']);

        $.each(data.response, function(i, marker) {
            // console.log(marker.lat, marker.lng);
            $('#map_canvas').gmap('addMarker', { 
                'position': new google.maps.LatLng(marker.lat, marker.lng), 
                'bounds': true 
            }).click(function() {
                $('#map_canvas').gmap('openInfoWindow', { 'content': marker.name }, this);
            });
        });
    }); 
    }

    function initialize(lat,lng) {
        $('#map_canvas').gmap({'center' : new google.maps.LatLng(lat, lng), 'callback': function(){
            add_markers();
        }});
    }

    if(navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(function(position){
            console.log(position);
            initialize(position.coords.latitude,position.coords.longitude);
            // google.maps.event
        });
    }
});
4

1 回答 1

0

抱歉,伙计们,我意识到问题是我在地图的构造函数中调用了 draw 方法这使得地图对象未初始化是有道理的。

所以回顾一下这个问题是这个构造函数内部的 add_markers() 方法(将 add_markers() 移到这一行下面);

$('#map_canvas').gmap({'center' : new google.maps.LatLng(lat, lng), 'callback': function(){

}});
于 2013-02-04T15:20:18.233 回答