Django - 部署时 Google Maps API Uncaught in promise 错误

Posted

技术标签:

【中文标题】Django - 部署时 Google Maps API Uncaught in promise 错误【英文标题】:Django - Google Maps API Uncaught in promise error when deployed 【发布时间】:2021-07-12 02:04:59 【问题描述】:

我正在使用 Google maps javascript Api 在我的网站上显示地图。 lat 和 long 是从两个 html 标签接收的,这些标签从模型中获取信息。该代码工作并显示模型的每个实例的地图。但是,它仅在 localhost 上 100% 有效,当我将站点部署到 Heroku 时,它仅在某些时候有效。有时地图会显示,有时不会。当它不显示时,它会给我一个Uncaught (in promise) 错误。

HTML

<!-- The two tags I'm getting the lat and long from -->
<input type="hidden" id="hidden_lat" name="lat" value="object.author.profile.detail_lat">
<input type="hidden" id="hidden_lng" name="lng" value="object.author.profile.detail_lng">

<!--Displays map -->
<div id="main_top">
  <div id="main">
   <div id="right">
     <div id="map"></div>
   </div>
 </div>
</div>
          
<script async
 src="https://maps.googleapis.com/maps/api/js?key=NICE_TRY=initMap">
</script>

CSS

           <style>
                #main_top 
                    margin-left: 100px;
                
              #right 
                height: 70%;
                
              #main 
                height: 400px;
                
              #map 
               height: 100%;
               width: 900px;
               
            </style>

Javascript

            function initMap() 
                var lat = +document.getElementById('hidden_lat').value   
                var lng = +document.getElementById('hidden_lng').value
                const map = new google.maps.Map(document.getElementById("map"), 
                  zoom: 12,
                  disableDefaultUI: true,
                  gestureHandling: "none",
                  zoomControl: false,
                  center:  lat: lat, lng: lng ,
                  
                );
                const image = "https://upload.wikimedia.org/wikipedia/commons/8/8e/Pan_Blue_Circle.png";
                const beachMarker = new google.maps.Marker(
                position:  lat: lat, lng: lng ,
                map,
                icon: image,
                );
              

The error thats showing

【问题讨论】:

【参考方案1】:

如果有人遇到类似问题。 API 与 heroku 服务器延迟相结合导致了竞态条件,因此不要在 API 脚本上使用 async,而是使用 defer

【讨论】:

以上是关于Django - 部署时 Google Maps API Uncaught in promise 错误的主要内容,如果未能解决你的问题,请参考以下文章

使用 Google Maps Unity SDK 的 Unity 游戏能否部署到 Windows 10 PC?

膨胀类 com.google.android.maps.MapView 时出错

Swift:未安装 Google Maps 时,应用程序需要打开 Apple Maps

当用户点击 react-google-maps 中的地图或标记时执行操作

google maps 单击标记点作为地图中心

Ionic:新幻灯片(Swiper)+ angular-google-maps 在拖动时会导致灰色空间