再一次:TypeError:a.lat不是谷歌地图API中的函数

Once again: TypeError: a.lat is not a function in google maps api

本文关键字:API 函数 谷歌地图 TypeError lat 再一次      更新时间:2023-09-26

在我们的网络应用程序中,我们有一个窗口显示我们俱乐部局的位置。工作正常,但标记窗口未显示。单击会产生可怕的 java 脚本错误"TypeError:a.lat 不是一个函数"。

看看我意识到的这类问题的其他答案,坐标必须是google.maps.LatLng对象或文字。我几乎确信我遵守这一点:

 var map = null;
 // Call this function when the page has been loaded
 function initialize()
 {
   if (arguments.callee.done) return;
     arguments.callee.done = true;
   var
     coord = { lat: 49.87216, lng: 8.63064 },
     mapOptions = {
       center: coord,
       zoom: 17,
       mapTypeId: google.maps.MapTypeId.ROADMAP,
       mapTypeControl: 1,
       mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU},
       scaleControl: 1,
       scaleControlOptions: {style: google.maps.ScaleControlStyle.DEFAULT, position: google.maps.ControlPosition.BOTTOM_RIGHT},
      navigationControl: 1,
      navigationControlOptions: {style: google.maps.ZoomControlStyle.ZOOM_PAN, position: google.maps.ControlPosition.RIGHT},
      position: google.maps.ControlPosition.BOTTOM_LEFT
   };
   map = new google.maps.Map(document.getElementById("map"), mapOptions);
   marker = new google.maps.Marker({
     title: "Fahrradbüro",
     position: coord,
     map: map
   });
   kartenFenster = new google.maps.InfoWindow(
   {
     content: '<div style="text-align: center"><img src="/static/images/images" alt="Fahrradbüro"/><br/>Fahrradbüro<br /></div>'
   });
   marker.addListener('click', function() {
     kartenFenster.open(map, marker);
   });
 }

但我仍然收到此错误。我在这里错过了什么?我什至尝试过:

var coord = new google.maps.LatLng( 49.87216, 8.63064 );

感谢您的帮助!

mapOptions末尾删除它:

position: google.maps.ControlPosition.BOTTOM_LEFT

API 还尝试访问 open() 中地图的position属性(请注意,open()的第一个参数也可能是街景全景,它确实有一个位置属性)导致错误(因为此属性不是 LatLng)。

var map;
 // Call this function when the page has been loaded
 function initialize()
 {
   if (arguments.callee.done) return;
     arguments.callee.done = true;
   var coord = new google.maps.LatLng( 49.87216, 8.63064 );
   var mapOptions = {
       center: coord,
       zoom: 17,
       mapTypeId: google.maps.MapTypeId.ROADMAP,
       mapTypeControl: 1,
       mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU},
       scaleControl: 1,
       scaleControlOptions: {style: google.maps.ScaleControlStyle.DEFAULT, position: google.maps.ControlPosition.BOTTOM_RIGHT},
      navigationControl: 1,
      navigationControlOptions: {style: google.maps.ZoomControlStyle.ZOOM_PAN, position: google.maps.ControlPosition.RIGHT},
      position: google.maps.ControlPosition.BOTTOM_LEFT
   };
   map = new google.maps.Map(document.getElementById("map"), mapOptions);
   marker = new google.maps.Marker({
     title: "Fahrradbüro",
     position: coord,
     map: map
   });
   kartenFenster = new google.maps.InfoWindow(
   {
     content: '<div style="text-align: center"><img src="/static/images/images" alt="Fahrradbüro"/><br/>Fahrradbüro<br /></div>'
   });
   marker.addListener('click', function() {
     kartenFenster.open(map, marker);
   });
  
 }
  google.maps.event.addDomListener(window, 'load',initialize);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<script src="https://maps.googleapis.com/maps/api/js?v=3&sensor=false"></script>
<div id="map" style="height:300px;width:400px"></div>

请检查片段。我添加了 id = "map" 的div,并且坐标和 js 几乎没有变化。