Javascript 使用google maps js从多边形内的geojson获取属性

Javascript 使用google maps js从多边形内的geojson获取属性,javascript,google-maps-api-3,polygon,geojson,Javascript,Google Maps Api 3,Polygon,Geojson,如何访问绘制多边形内geojson数据的属性?我有以下示例: var map; function initMap() { map = new google.maps.Map(document.getElementById('map'), { zoom: 4, center: {lat: -28, lng: 137} }); // Load GeoJSON. map.data.loadGeoJson('https://storage.googleapis.com/

如何访问绘制多边形内geojson数据的属性?我有以下示例:

var map;
function initMap() {
  map = new google.maps.Map(document.getElementById('map'), {
    zoom: 4,
    center: {lat: -28, lng: 137}
  });

  // Load GeoJSON.
  map.data.loadGeoJson('https://storage.googleapis.com/mapsdevsite/json/google.json');

  // Set the stroke width, and fill color for each polygon
  map.data.setStyle({
    fillColor: 'green',
    strokeWeight: 1
  });


  var drawingManager = new google.maps.drawing.DrawingManager({
    drawingControl: true,
    drawingControlOptions: {
      position: google.maps.ControlPosition.TOP_CENTER,
      drawingModes: ['polygon']
    }
  });
  drawingManager.setMap(map);

  google.maps.event.addListener(drawingManager, 'polygoncomplete', function (polygon) {
    var coordinates = (polygon.getPath().getArray());

    // Get all features from polygon and geojson common part

    }
  );  
}


每个特征都包含字母、颜色等属性。如果我在其中一个(或多个)字母上绘制多边形,我希望获得属性。

一个选项是通过检查中的特征,检查它们的任何/所有点是否包含在绘制的多边形中。此示例在数据层上多边形边界的中心打开一个信息窗口

代码片段:

var映射;
函数initMap(){
map=new google.maps.map(document.getElementById('map'){
缩放:4,
中心:{
拉丁语:-28,
液化天然气:137
}
});
//加载GeoJSON。
map.data.loadGeoJson(
'https://storage.googleapis.com/mapsdevsite/json/google.json');
//设置每个多边形的笔划宽度和填充颜色
map.data.setStyle({
fillColor:'绿色',
冲程重量:1
});
var drawingManager=new google.maps.drawing.drawingManager({
drawingControl:对,
drawingControlOptions:{
位置:google.maps.ControlPosition.TOP_CENTER,
绘图模式:[“多边形”]
}
});
drawingManager.setMap(map);
google.maps.event.addListener(drawingManager,'polygoncomplete',函数(多边形){
变量坐标=(polygon.getPath().getArray());
map.data.forEach(函数(特性){
var id=feature.getId();
var color=feature.getProperty(“颜色”);
var字母=feature.getProperty(“字母”);
var geometry=feature.getGeometry();
var type=geometry.getType();
if(geometry.getType()=“多边形”){
var path=geometry.getArray()[0];
var completelyContained=0;
var partiallyContained=false;
var=false;
var-content=“”;
var bounds=new google.maps.LatLngBounds();
对于(var i=0;i”;
}
if(partiallyContained==true)
内容+=“部分包含
”; 如果(包含| |部分包含){ 内容+=“字母:”+字母+“
”; 内容+=“颜色:”+颜色; infowindow.setContent(content); infowindow.setPosition(bounds.getCenter()); 打开(地图); } } //属性名为的警报() }); }); }
html,
身体{
身高:100%;
宽度:100%;
保证金:0;
填充:0;
}
#地图{
身高:100%;
宽度:100%;
}