Google Maps v3 jquery mobile获取中心经纬度

时间:2013-02-04 15:04:33

标签: google-maps jquery-mobile google-maps-api-3

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

我已经尝试过使用这两种方法但是我在chrome js中得到“Uncaught 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
        });
    }
});

1 个答案:

答案 0 :(得分:0)

道歉章节我意识到问题是我在地图的构造函数中调用了里面的,这对于地图对象没有初始化是有道理的。

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

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

}});