Javascript 使用google maps js从多边形内的geojson获取属性
如何访问绘制多边形内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/
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%;
}