Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
codeigniter在ajax上加载googlemaps提供了空的map_画布_Ajax_Codeigniter_Google Maps - Fatal编程技术网

codeigniter在ajax上加载googlemaps提供了空的map_画布

codeigniter在ajax上加载googlemaps提供了空的map_画布,ajax,codeigniter,google-maps,Ajax,Codeigniter,Google Maps,我在codeigniter中显示了一个谷歌地图,这一切都很好。 但是我在ajax调用中使用了相同的代码,但是它输出了一个空的map\u画布,所以我什么也看不到 public function googlemapsAjax() { echo " <script type='text/javascript'> $.getScript('/assets/js/admin.js'); </script> "; $thi

我在codeigniter中显示了一个谷歌地图,这一切都很好。 但是我在ajax调用中使用了相同的代码,但是它输出了一个空的map\u画布,所以我什么也看不到

public function googlemapsAjax()
{
    echo "
    <script type='text/javascript'>
        $.getScript('/assets/js/admin.js');
    </script>
    ";



    $this->load->library('googlemaps');

$config['center'] = '50.850340, 4.351710';
$config['zoom'] = '6';
$config['places'] = TRUE;
$config['placesAutocompleteInputID'] = 'location';
$config['placesAutocompleteBoundsMap'] = TRUE; // set results biased towards the maps viewport
$config['placesAutocompleteOnChange'] = '

var geocoder = new google.maps.Geocoder();
        var address = document.getElementById("location").value;
        geocoder.geocode({ "address": address }, function (results, status) {
            if (status == google.maps.GeocoderStatus.OK) {
                if(typeof marker != "undefined"){marker.setMap(null)};
                $("#location").parent().removeClass("has-error");
                var latitude = results[0].geometry.location.lat();
                var longitude = results[0].geometry.location.lng();
                $("#latitude").val(latitude);
                $("#longitude").val(longitude);
                 marker = new google.maps.Marker({
map:map,
draggable:true,
animation: google.maps.Animation.DROP,
position: new google.maps.LatLng(latitude, longitude)
});
map.setCenter(new google.maps.LatLng(latitude, longitude), 16);
map.setZoom(16);
google.maps.event.addListener(marker, "dragend", function (event) {
latitude = this.getPosition().lat();
longitude = this.getPosition().lng();
$("#latitude").val(latitude);
$("#longitude").val(longitude);
});
            } else {
                alert("Request failed.")
                $("#location").parent().addClass("has-error");
            }
        });

';
$this->googlemaps->initialize($config);
$data['map'] = $this->googlemaps->create_map();

    $this->load->view('admin/ajax/view_googlemaps_ajax', $data);
}

有人知道为什么我在map_画布中没有输出吗?
虽然如果我不使用ajax,它可以完美工作。

@jen_vdp-感谢您使用我的库。我看了一下,认为问题在于如何调用/初始化映射

如果恢复到非ajax版本并查看页面源代码,您将看到映射已通过以下代码初始化:

google.maps.event.addDomListener(window, "load", initialize_map);
显然,如果您通过AJAX加载地图,那么窗口已经加载,因此,我认为这不会得到执行

我的建议是在AJAX请求成功回调时手动调用JS函数initialize_map()

这是目前我唯一能想到的事情。如果您继续遇到问题,请务必告诉我,我将进一步调查

谢谢,
史蒂夫

@jen_vdp-感谢您使用我的图书馆。我看了一下,认为问题在于如何调用/初始化映射

如果恢复到非ajax版本并查看页面源代码,您将看到映射已通过以下代码初始化:

google.maps.event.addDomListener(window, "load", initialize_map);
显然,如果您通过AJAX加载地图,那么窗口已经加载,因此,我认为这不会得到执行

我的建议是在AJAX请求成功回调时手动调用JS函数initialize_map()

这是目前我唯一能想到的事情。如果您继续遇到问题,请务必告诉我,我将进一步调查

谢谢,
史蒂夫

@jen_vdp-感谢您使用我的图书馆。我看了一下,认为问题在于如何调用/初始化映射

如果恢复到非ajax版本并查看页面源代码,您将看到映射已通过以下代码初始化:

google.maps.event.addDomListener(window, "load", initialize_map);
显然,如果您通过AJAX加载地图,那么窗口已经加载,因此,我认为这不会得到执行

我的建议是在AJAX请求成功回调时手动调用JS函数initialize_map()

这是目前我唯一能想到的事情。如果您继续遇到问题,请务必告诉我,我将进一步调查

谢谢,
史蒂夫

@jen_vdp-感谢您使用我的图书馆。我看了一下,认为问题在于如何调用/初始化映射

如果恢复到非ajax版本并查看页面源代码,您将看到映射已通过以下代码初始化:

google.maps.event.addDomListener(window, "load", initialize_map);
显然,如果您通过AJAX加载地图,那么窗口已经加载,因此,我认为这不会得到执行

我的建议是在AJAX请求成功回调时手动调用JS函数initialize_map()

这是目前我唯一能想到的事情。如果您继续遇到问题,请务必告诉我,我将进一步调查

谢谢, 史蒂夫