Javascript 未捕获类型错误:无法读取属性';应用';未定义的谷歌地图

Javascript 未捕获类型错误:无法读取属性';应用';未定义的谷歌地图,javascript,google-maps,Javascript,Google Maps,我正在使用谷歌地图在地图上做标记,并尝试使用以下代码将地址转换为地理代码: <script src="https://maps.googleapis.com/maps/api/js?key=&callback=initialize" async defer></script> <script type="text/javascript"> var map; function initialize() { var chamberLocatio

我正在使用谷歌地图在地图上做标记,并尝试使用以下代码将地址转换为地理代码:

<script src="https://maps.googleapis.com/maps/api/js?key=&callback=initialize" async defer></script>

<script type="text/javascript">
var map;

 function initialize() {
   var chamberLocation = {lat: 43, lng: -82};
   var geocoder = new google.maps.Geocoder();
   map = new google.maps.Map(document.getElementById('map'), {
     center: {lat: 42.9745, lng: -82.4066},
     zoom: 14,
     styles: [{"featureType":"road","elementType":"geometry","stylers":[{"visibility":"simplified"}]},{"featureType":"road.arterial","stylers":[{"hue":149},{"saturation":-78},{"lightness":0}]},{"featureType":"road.highway","stylers":[{"hue":-31},{"saturation":-40},{"lightness":2.8}]},{"featureType":"poi","elementType":"label","stylers":[{"visibility":"off"}]},{"featureType":"landscape","stylers":[{"hue":163},{"saturation":-26},{"lightness":-1.1}]},{"featureType":"transit","stylers":[{"visibility":"off"}]},{"featureType":"water","stylers":[{"hue":3},{"saturation":-24.24},{"lightness":-38.57}]}],
     zoomControl: false,
     scaleControl: false,
     mapTypeControl: false,
     disableDefaultUI: false,
     streetViewControl: false,
     rotateControl: false,
     scrollwheel: false,
     draggable: false
   });
   codeAddress(geocoder, map);

   }

   function codeAddress(geocoder, map) {
       var address = 'place';
       geocoder.geocode({ 'address' : address }), function(results, status) {
           if (status == google.maps.GeocoderStatus.OK) {
               var marker = new google.maps.Marker({
                   map: map,
                   position: results[0].geometry.location
               });
           } else {
               console.log('This didnt work' + status);
           }
       };
   }


</script>

var映射;
函数初始化(){
var chamberLocation={lat:43,lng:-82};
var geocoder=new google.maps.geocoder();
map=new google.maps.map(document.getElementById('map'){
中心:{lat:42.9745,lng:-82.4066},
缩放:14,
样式:[{“featureType”:“road”,“elementType”:“geometry”,“stylers”:[{“visibility”:“simplified”}],{“featureType”:“road.Arteral”,“stylers”:[{“hue”:149},{“saturation”:-78},{“lightness”:0},{“featureType”:“road.highway”,“stylers”:[{“hue”:-31},{“saturation”:-40},{“lightness”:2.8}],{“featureType”:“label”,“stylers”:“label”,“visibility”:“off”}、{“featureType”:“风景”、“风格”:[{“色调”:163}、{“饱和度”:-26}、{“明度”:-1.1}、{“特色类型”:“过渡”、“风格”:[{“可见性”:“off”}、{“特色类型”:“水”、“风格”:[{“色调”:3}、{“饱和度”:-24.24}、{“明度”:-38.57}],
动物控制:错误,
scaleControl:false,
mapTypeControl:false,
disableDefaultUI:false,
街景控制:错误,
旋转控制:错误,
滚轮:错误,
可拖动:错误
});
编码地址(地理编码器、地图);
}
功能代码地址(地理编码器、地图){
变量地址='地点';
geocoder.geocode({'address':address}),函数(结果,状态){
if(status==google.maps.GeocoderStatus.OK){
var marker=new google.maps.marker({
地图:地图,
位置:结果[0]。几何体。位置
});
}否则{
console.log('此未工作'+状态);
}
};
}
每当我这样做时,我都会收到一个错误,说
uncaughttypeerror:无法读取未定义的属性“apply”


导致此错误的原因是什么?我不确定如何修复此问题。是否必须导入另一个google maps api?

此错误是一个输入错误。我将代码放在下面,并在输入错误的位置注释了
//更改
geocoder.geocode({},回调)
是一个接受对象和回调的函数,但是您有
geocoder.geocode({'address':address})
,键入的是
它应该是
geocoder.geocode({'address':address}),函数(结果,状态){…

<div id="map" style="width: 320px; height: 480px;"></div>

  <script type="text/javascript">
    var map;

    function initialize() {
      // your code 
      // etc ... 
      codeAddress(geocoder, map);
    }

    function codeAddress(geocoder, map) {
      var address = 'place';
      geocoder.geocode({
          'address': address
        }, // change
        function(results, status) {
          if (status == 'OK') { // change

            var marker = new google.maps.Marker({
              map: map,
              position: results[0].geometry.location
            });

            // some debug output
            console.log("status is: " + status)
            console.log("results is: " + JSON.stringify(results[0].geometry.location))
          } else {
            console.log('This didnt work' + status);
          }
        });
    };
  </script>

  <script async defer src="https://maps.googleapis.com/maps/api/js?key=API_KEY&callback=initialize"></script>

var映射;
函数初始化(){
//你的代码
//等等。。。
编码地址(地理编码器、地图);
}
功能代码地址(地理编码器、地图){
变量地址='地点';
地理编码({
“地址”:地址
},//更改
功能(结果、状态){
如果(状态=='OK'){//change
var marker=new google.maps.marker({
地图:地图,
位置:结果[0]。几何体。位置
});
//一些调试输出
日志(“状态为:”+状态)
log(“结果为:+JSON.stringify(结果[0].geometry.location))
}否则{
console.log('此未工作'+状态);
}
});
};

如果我使用
async/await
而不是callback怎么办?在这种情况下,如何编写回调函数?