You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Maps读取spherical属性报错,搜索后定位最近标记功能异常

报错原因

Cannot read properties of undefined (reading 'spherical')报错的核心原因是谷歌地图JavaScript API的geometry几何库没有在初始化加载时引入,google.maps.geometry对象未被初始化,所以无法访问其下的spherical属性。

修复方案
  • 第一步:修改谷歌地图API的加载脚本,追加libraries参数引入geometry库
    如果之前的加载代码是:
<script src="https://maps.googleapis.com/maps/api/js?key=你的API密钥"></script>

修改为:

<script src="https://maps.googleapis.com/maps/api/js?key=你的API密钥&libraries=geometry"></script>
  • 第二步:可选优化原有代码逻辑,补充边界判断避免pins为空的异常,修改后的完整参考代码如下:
function geocodeAddress(geocoder, resultsMap){
  var address = document.getElementById('address').value;
  geocoder.geocode({'address': address}, function(results, status){
    if (status === 'OK') { 
      function find_closest_marker(event){
        // 补充pins非空判断,避免无标记点时报错
        if(!pins || pins.length === 0) return;
        var distances = [];
        var closest = -1;
        for(i = 0; i < pins.length; i++){
          var d = google.maps.geometry.spherical.computeDistanceBetween(pins[i].position, event);
          distances[i] = d;
          if (closest == -1 || d < distances[closest]){
            closest = i;
          }
        }
        resultsMap.setCenter(pins[closest].position);
        // 若需要自动缩放到合适层级可以补充下面这行
        // resultsMap.setZoom(15);
      } 
      find_closest_marker(results[0].geometry.location);          
    } else {
      alert('地址解析失败,原因:' + status);
    }
  });
}

内容的提问来源于stack exchange,提问作者user715449

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 18:00:00