0

マップが初期化された後、マップ上にマーカーを描画しようとしています。しかし、私は中心点の広背筋を知る必要があります。

これらの両方を使用してみましたが、chrome jsで「UncaughtRangeError:Maximumcallstacksizeexceeded」が発生します。

$('#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 に答える