Jquery 如何基于ajax结果显示google地图?

Jquery 如何基于ajax结果显示google地图?,jquery,ajax,Jquery,Ajax,我有一个页面,我必须显示地图和基于ajax成功结果的mysql结果。一旦成功,我将得到经纬度。基于此,我必须在地图上标出位置。之后,每个搜索都会有一个过滤器。所以标记应该是全局数组。如何实现这一功能。此外,地图应根据搜索结果自动居中缩放 function initialize() { var latitude = 57.95, longitude = 14.65, radius = 8000, //how is this set up

我有一个页面,我必须显示地图和基于ajax成功结果的mysql结果。一旦成功,我将得到经纬度。基于此,我必须在地图上标出位置。之后,每个搜索都会有一个过滤器。所以标记应该是全局数组。如何实现这一功能。此外,地图应根据搜索结果自动居中缩放

  function initialize() {
    var latitude = 57.95,
        longitude = 14.65,
        radius = 8000, //how is this set up
        center = new google.maps.LatLng(latitude,longitude),
        bounds = new google.maps.Circle({center: center, radius: radius}).getBounds(),
        mapOptions = {
            center: center,
            zoom: 9,
            mapTypeId: google.maps.MapTypeId.ROADMAP,
            scrollwheel: false
        };

    var map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);

    setMarkers(center, radius, map);
}

function setMarkers(center, radius, map) {
    var json = (function () { 
        var json = null; 
        $.ajax({ 
            'async': false, 
            'global': false, 
            'url': "js/hotels.json", 
            'dataType': "json", 
            'success': function (data) {
                 json = data; 
             }
        });
        return json;
    })

因为ajax请求是异步的,所以必须在ajax请求的成功函数中设置标记。 因此,返回json变量将不起作用

您可以在Google地图文档中找到如何设置标记,如下所示:


要使地图根据标记缩放,可以使用边界框。如何做到这一点可以在这里找到:

因为ajax请求是同步的,所以您必须在成功函数中根据ajax请求设置标记。 因此,返回json变量将不起作用

您可以在Google地图文档中找到如何设置标记,如下所示:

要使地图根据标记缩放,可以使用边界框。如何做到这一点可以在这里找到: