Google maps api 3 计算多边形的面积

Google maps api 3 计算多边形的面积,google-maps-api-3,Google Maps Api 3,我需要在我的地图上得到一个多边形的面积。我找了一个新的google.maps.geometry.Spheremic.computeArea的例子,但是我不能让它工作,我也不知道为什么 function dibuV(area){ var i; var a = new Array(); for(i=0; i<area.length; i++){ var uno = area[i].split(","); a[i] = new google.maps.LatLng(u

我需要在我的地图上得到一个多边形的面积。我找了一个新的google.maps.geometry.Spheremic.computeArea的例子,但是我不能让它工作,我也不知道为什么

function dibuV(area){
  var i;
  var a = new Array();
  for(i=0; i<area.length; i++){
    var uno = area[i].split(",");
    a[i] = new google.maps.LatLng(uno[0],uno[1]);
  }
  poligon = new google.maps.Polygon({
    paths: a,
    strokeColor: "#22B14C",
    strokeOpacity: 0.8,
    strokeWeight: 2,
    fillColor: "#22B14C",  
    fillOpacity: 0.35  
  })  
  poligon.setMap(map);//until here is ok 
  var z = new google.maps.geometry.spherical.computeArea(poligon.getPath());
  alert(z); //this is not working
}
功能dibuV(区域){
var i;
var a=新数组();

对于(i=0;i代码给您的错误:
google.maps.geometry未定义

从中,几何体函数是默认情况下未加载的库的一部分:

本文档中的概念仅指可用的功能 在google.maps.geometry库中。此库不是由加载的 加载Maps Javascript API时的默认值,但必须显式 通过使用库引导参数指定

为了在页面中加载和使用几何体函数,您需要通知Google您将使用几何体库,方法是将几何体库添加到初始Google API调用中,包括
libraries=geometry

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?libraries=geometry&sensor=false"></script>

这不起作用,因为您正在使用“new”来使用computeArea方法。 使用“google.maps.geometry.spherical.computeArea”而不使用“new”。 例如:

var z = google.maps.geometry.spherical.computeArea(myPolyline.getPath().getArray());
alert(z);

这将起作用。

请查看我下面的代码

var z = google.maps.geometry.spherical.computeArea(poligon.getPath());

我想知道,你怎么知道他会犯这样的错误呢?就我而言,在绘图库已经加载的情况下,添加你建议的脚本标记导致了该过程失败。也许绘图库中包含了几何体?对我来说很有用。(正如莱昂纳多所说,在静态方法之前丢失“新的”。)谢谢,当我遇到这个问题时,我花了很多时间挠头。在我的例子中,它在加载库的此部分之前触发了jquery加载事件。如果您需要多个库,只需用逗号将它们分开,如下所示:
?库=几何体,可视化
。对于可能需要此功能的搜索者的其他帮助这不是一个完整的解决方案:如果您正在加载几何体库并使用API键,则必须将
参数放在
参数之前。我在这一点上停留了很久欢迎使用堆栈溢出,虽然这可能会回答问题,但最好给出解释,而不仅仅是为您的答案编写代码。
var z = google.maps.geometry.spherical.computeArea(poligon.getPath());