创建Javascript/JQuery后检索Google地图对象

创建Javascript/JQuery后检索Google地图对象,javascript,jquery,html,google-maps,Javascript,Jquery,Html,Google Maps,我想知道是否有办法在创建后检索google.maps.Map对象?我需要在我的页面中创建几个映射,并且我正在使用一个函数通过JSON循环来创建映射。因此,我没有留下一个全局“映射”对象,我需要能够不时地重新居中映射。问题是,我不知道如何让“地图”对象重置地图的中心。我可以通过JQuery选择器获取div,在这里我使用Gmaps.js创建了映射,甚至可以触发“resize”事件来修复隐藏的div。然而,我没有任何运气检索地图对象本身 ------------------地图创建功能--------

我想知道是否有办法在创建后检索google.maps.Map对象?我需要在我的页面中创建几个映射,并且我正在使用一个函数通过JSON循环来创建映射。因此,我没有留下一个全局“映射”对象,我需要能够不时地重新居中映射。问题是,我不知道如何让“地图”对象重置地图的中心。我可以通过JQuery选择器获取div,在这里我使用Gmaps.js创建了映射,甚至可以触发“resize”事件来修复隐藏的div。然而,我没有任何运气检索地图对象本身

------------------地图创建功能--------------------------------------

  function doMaps(){$.getJSON("map-locations.json", function(results) {
    //var JSONdata = JSON.parse(results);
    //alert(results);

    $.each(results, function(index, val) {
        var mapdiv = results[index].mapdiv;
        var destlat = results[index].destination.lat;
        var destlon = results[index].destination.lon;
        var desttitle = results[index].destination.title;
        var orglat = results[index].origin.lat;
        var orglon = results[index].origin.lon;


         var map;
           map = new GMaps({
            el: '#'+mapdiv,
            lat: destlat,
            lng: destlon,
            width: '750px',
            height: '580px'
           });
           map.travelRoute({
             origin: [orglat, orglon],
             destination: [destlat, destlon],
             travelMode: 'driving',
             step: function(e){
               $('#instructions').append('<li>'+e.instructions+'</li>');
               $('#instructions li:eq('+e.step_number+')').delay(450*e.step_number).fadeIn(200, function(){
                 map.drawPolyline({
                   path: e.path,
                   strokeColor: '#131540',
                   strokeOpacity: 0.6,
                   strokeWeight: 6
                 });  
               });
             }
           });
           map.addMarker({
             lat: destlat,
             lng: destlon,
             title: desttitle,
             infoWindow: {
                 content: '<p>'+desttitle+'</p>'
                 }
           });

           }); 
           });   
        };
          function resizeMaps(){

            $('.map').each(function() {
            var map = $(this).get(0);
            google.maps.event.trigger(map, 'resize');
           // WHERE I WOULD LIKE TO RECENTER AFTER RESIZE
           //$(this).get(0).setCenter(currCenter);
         })

         }

任何帮助都将不胜感激。

创建对象数组是最好的选择。实际上,我最终得到了一个多维数组

     var maps = new Array();

    function doMaps(){$.getJSON("map-locations.json", function(results) {
    //var JSONdata = JSON.parse(results);
    //alert(results);

    $.each(results, function(index, val) {
        var mapdiv = results[index].mapdiv;
        var destlat = results[index].destination.lat;
        var destlon = results[index].destination.lon;
        var desttitle = results[index].destination.title;
        var orglat = results[index].origin.lat;
        var orglon = results[index].origin.lon;
        var cntlat = results[index].center.lat;
        var cntlon = results[index].center.lon;
        var zoom = results[index].zoom;

         var route;
         var map;
           map = new GMaps({
            el: '#'+mapdiv,
            lat: cntlat,
            lng: cntlon,
            width: '750px',
            height: '580px',
            zoom: zoom
           });

           map.addMarker({
             lat: destlat,
             lng: destlon,
             title: desttitle,
             infoWindow: {
                 content: '<p>'+desttitle+'</p>'
                 }
           });
           map.addMarker({
             lat: orglat,
             lng: orglon,
             title: 'You Are Here',
             infoWindow: {
                 content: '<p>You Are Here</p>'
                 }
           });

           setTimeout(function() {
            map.getRoutes({
                           origin: [orglat, orglon],
                           destination: [destlat, destlon],
                           travelMode: 'driving'

                       });
            }, 1000);


           var mapData = new Array();
           mapData[0] = mapdiv;
           mapData[1] = map;
           maps.push(mapData);
           });
           });
        };


          //retrieve mapData
         var mapData = $.grep(maps, function(mapData) {
                return mapData[0] === mapdiv;
            });

            map = mapData[0][1];
var-maps=new-Array();
函数doMaps(){$.getJSON(“map locations.json”),函数(结果){
//var JSONdata=JSON.parse(结果);
//警报(结果);
$.each(结果、函数(索引、val){
var mapdiv=结果[索引].mapdiv;
var destlat=results[index].destination.lat;
var destlon=results[index].destination.lon;
var desttitle=结果[索引].destination.title;
var orglat=结果[索引].origin.lat;
var orglon=结果[索引].origin.lon;
var cntlat=结果[索引].center.lat;
var cntlon=结果[index].center.lon;
var zoom=结果[索引]。缩放;
var路径;
var映射;
map=新的gmap({
el:“#”+mapdiv,
lat:cntlat,
液化天然气:cntlon,
宽度:“750px”,
高度:'580px',
缩放:缩放
});
map.addMarker({
lat:destlat,
液化天然气:德斯隆,
标题:标题,,
信息窗口:{
内容:“”+desttitle+“

” } }); map.addMarker({ 拉特:奥拉特, lng:orglon, 标题:“你在这里”, 信息窗口:{ 内容:“你在这里

” } }); setTimeout(函数(){ map.getRoutes({ 来源:[orglat,orglon], 目的地:[目的地,目的地], travelMode:“驾驶” }); }, 1000); var mapData=新数组(); mapData[0]=mapdiv; mapData[1]=地图; maps.push(mapData); }); }); }; //检索地图数据 var mapData=$.grep(映射,函数(mapData){ 返回mapData[0]==mapdiv; }); map=mapData[0][1];
您的JSON看起来像什么?为什么你不能创建一个全局的maps对象数组呢?这就是我开始尝试的,我现在正在尝试解决这个问题。