Php 打开infowindow后出现Ajax调用错误

Php 打开infowindow后出现Ajax调用错误,php,jquery,ajax,Php,Jquery,Ajax,我在我的网站上使用谷歌地图的gmap3 我在点击一个按钮后找到了一个标记。Everyclick会根据用户的选择为我提供不同的位置 但是,当用户单击标记打开信息窗口并关闭它时,ajax调用就不起作用了。它在chrome控制台上给了我这个错误,“uncaughtTypeError:无法调用main.js中未定义的方法'lat' 编辑:似乎我忘了从代码中放入autofit{},似乎这就是问题所在。有人知道在这种情况下如何使用autofit吗 这是我的密码 // create a map $('#ma

我在我的网站上使用谷歌地图的gmap3

我在点击一个按钮后找到了一个标记。Everyclick会根据用户的选择为我提供不同的位置

但是,当用户单击标记打开信息窗口并关闭它时,ajax调用就不起作用了。它在chrome控制台上给了我这个错误,“uncaughtTypeError:无法调用main.js中未定义的方法'lat'

编辑:似乎我忘了从代码中放入autofit{},似乎这就是问题所在。有人知道在这种情况下如何使用autofit吗

这是我的密码

 // create a map
$('#map_canvas').gmap3({
  map: {
    options: {
      center: [-2.899153, 117.722626],
      zoom: 4,
      mapTypeId: google.maps.MapTypeId.SATELLITE
    }
  }
});
$('.locate-btn').on('click', function() {
var place_id = $('.place').val();
var address = $('.address').val();
$.ajax({
  url: 'ajax.php',
  type: 'post',
  dataType: 'json',
  data: 'place_id=' + place_id + '&address=' + address,
  beforeSend: function() {
    $('.loading').append("<img src='/images/loading.gif'  id='loader' />");
  },
  success: function(place) {
    $('#map_canvas').gmap3({
      marker: {
        latLng: [place.lat, place.lng],
        data: '<a href="#" class="btn btn-info">nearest hotels</a><a class="btn btn-danger" href="#">about</a>',
        events: {
          click: function(marker, event, context) {
            var map = $(this).gmap3('get'),
              infowindow = $(this).gmap3({
                get: {
                  name: 'infowindow'
                }
              });
            if (infowindow) {
              infowindow.close();
              infowindow.open(map, marker);
              infowindow.setContent(context.data);
            } else {
              $(this).gmap3({
                infowindow: {
                  anchor: marker,
                  options: {
                    content: context.data
                  }
                }
              });
            }
          }
        }
      },
      autofit: {}
    });
  }
});
});
});
//创建一个映射
$('map#u canvas').gmap3({
地图:{
选项:{
中心:[-2.899153117.722626],
缩放:4,
mapTypeId:google.maps.mapTypeId.SATELLITE
}
}
});
$('.locate btn')。在('click',function()上{
var place_id=$('.place').val();
var address=$('.address').val();
$.ajax({
url:'ajax.php',
键入:“post”,
数据类型:“json”,
数据:“地点id=”+地点id+“&地址=”+地址,
beforeSend:function(){
$('.loading')。追加(“”);
},
成功:功能(地点){
$('map#u canvas').gmap3({
标记:{
latLng:[place.lat,place.lng],
数据:“”,
活动:{
单击:功能(标记、事件、上下文){
var map=$(this.gmap3('get'),
infowindow=$(this).gmap3({
获取:{
名称:“信息窗口”
}
});
如果(信息窗口){
infowindow.close();
信息窗口。打开(地图、标记);
infowindow.setContent(context.data);
}否则{
$(本文件)。gmap3({
信息窗口:{
主持人:马克,
选项:{
内容:context.data
}
}
});
}
}
}
},
自动拟合:{}
});
}
});
});
});
有人能告诉我出了什么事吗


谢谢。

错误表明您获得成功的位置未设置。可能它没有得到数据。您正在使用place.lat,如果没有定义place,可能没有得到数据,则会出现此错误,因为place没有定义它的。lat无法调用。您有一个您正在尝试的实例吗?