首页 > 解决方案 > Google 地理编码:无法读取 Object.success 处未定义的属性“setCenter”

问题描述

您好我正在使用 Google 地理编码从 Json 请求结果中放置地图标记。请看下面的代码:

<script>
$( document ).ready(function () {
        $('.table').hide();
        $.getJSON(url, '', function (response) {

                map.setCenter(JSON.parse(response[0].coordinates));
                var infowindow = new google.maps.InfoWindow({
                    content: response[0].address
                });
                ;
                var ico = '/assets/images/address.png';
                var marker = new google.maps.Marker({
                    map: map,
                    position: JSON.parse(response[0].coordinates),
                    title: response[0].address,
                    icon: ico
                });


                infowindow.open(map, marker);
                marker.addListener('click', function () {
                    infowindow.open(map, marker);
                });

        });

    })
</script>



<script>


    var geocoder;
    var map;
    function initialize() {
        geocoder = new google.maps.Geocoder();
        var latlng = new google.maps.LatLng(-XXXXX, XXXXX);
        var mapOptions = {
            zoom: 16,
            center: latlng
        }
        map = new google.maps.Map(document.getElementById('map'), mapOptions);
    }

    function codeAddress() {
        var address = document.getElementById('address').value;
        geocoder.geocode( { 'address': address}, function(results, status) {
            if (status == 'OK') {
                map.setCenter(results[0].geometry.location);
                var marker = new google.maps.Marker({
                    map: map,
                    position: results[0].geometry.location
                });
            } else {
                alert('Geocode was not successful for the following reason: ' + status);
            }
        });
    }
</script>

出于某种原因,当我第一次用力刷新页面或加载页面时

无法在 Object.success 处读取未定义的属性“setCenter”
错误。谁能让我知道我在这里做错了什么。

标签: javascriptjqueryjsonajaxgeocoding

解决方案


推荐阅读