为什么我的feature对象不能使用feature.getGeometry方法?

时间:2017-03-12 14:25:44

标签: javascript google-maps google-maps-api-3 gis geojson

当我绘制几何体时,我想在谷歌地图上的geojson图层边界的中心边界和网站内添加几何标签。

map.data.addListener("addfeature", function(feature){

var g=feature.getGeometry();
console.log("test ok");
//var bounds = new google.maps.LatLngBounds();
console.log(g.get());
return feature;
});

我根据google开发参考(https://developers.google.com/maps/documentation/javascript/reference#Data)添加了一个带有监听器addfeature的map.data

根据页面(https://developers.google.com/maps/documentation/javascript/reference#Data.AddFeatureEvent),带有争论的函数追赶addfeature监听器应该是特征对象。

根据要素类页面(https://developers.google.com/maps/documentation/javascript/reference#Data.Feature),要素对象应具有方法getGeometry()。

但是当我执行上面的代码时,我从浏览器中收到错误。

Uncaught TypeError: feature.getGeometry is not a function
at He.<anonymous> (bakb.html:37)
at qe._.y.trigger (js?sensor=true&callback=myMap:104)
at qe.<anonymous> (js?sensor=true&callback=myMap:38)
at Object._.y.trigger (js?sensor=true&callback=myMap:104)
at qe._.k.add (js?sensor=true&callback=myMap:116)
at js?sensor=true&callback=myMap:69
at Object._.ab (js?sensor=true&callback=myMap:35)
at Object._.re (js?sensor=true&callback=myMap:69)
at Ub (data.js:11)
at OF (util.js:136)

我通过以下方式调用google map apis:

<script src="//maps.google.com/maps/api/js?sensor=true&callback=myMap></script>

我想我正确使用谷歌地图。 但为什么没有定义feature.getGeometry方法? 如何从功能中获取几何图形?并且回调函数中的特征争论是否真的是特征对象?如果不是如何从争论中获得几何学?

1 个答案:

答案 0 :(得分:1)

addfeature事件侦听器返回addFeatureEvent object,它具有要素属性,它本身不是要素。

  

Data.AddFeatureEvent对象规范
  google.maps.Data.AddFeatureEvent对象规范
  addfeature事件的属性。

     

<强>属性   功能 |类型:Data.Feature
  添加到FeatureCollection的功能。

map.data.addListener("addfeature", function(event) {
  var g = event.feature.getGeometry();
  console.log("test ok");
  //var bounds = new google.maps.LatLngBounds();
  // assuming all the features are points
  console.log(g.get());
});