Javascript 谷歌地图API-“;toGeoJson";返回几何体为空的对象

Javascript 谷歌地图API-“;toGeoJson";返回几何体为空的对象,javascript,google-maps,google-maps-api-3,geojson,google-maps-drawing,Javascript,Google Maps,Google Maps Api 3,Geojson,Google Maps Drawing,我正在使用谷歌地图绘图层(库)在我的地图上绘制形状 完成绘制所有形状后,我从GoogleMapsAPI调用“toGeoJson”函数 我收到的对象如下所示: 我不知道我做错了什么 我只是想用地图上绘制的形状创建一个GeoJson 我没有粘贴任何代码,因为绘图部分都是由绘图库完成的,“toGeoJson”函数是由google maps API完成的。上没有只存在于上的toGeoJson方法 使用图形管理器在地图上绘制对象不会将其添加到数据层 您可以将图形管理器中的对象添加到数据层,然后在此层上调

我正在使用谷歌地图绘图层(库)在我的地图上绘制形状

完成绘制所有形状后,我从GoogleMapsAPI调用“toGeoJson”函数

我收到的对象如下所示:

我不知道我做错了什么

我只是想用地图上绘制的形状创建一个GeoJson


我没有粘贴任何代码,因为绘图部分都是由绘图库完成的,“toGeoJson”函数是由google maps API完成的。

上没有只存在于上的
toGeoJson
方法

使用图形管理器在地图上绘制对象不会将其添加到数据层

您可以将图形管理器中的对象添加到数据层,然后在此层上调用
toGeoJson

要防止向地图添加重复对象,请使用单独的数据对象,而不是地图上的数据对象

(相关问题中的一些代码:)

代码片段:

函数initMap(){
var map=new google.maps.map(document.getElementById('map'){
中心:{
lat:-34.397,
液化天然气:150.644
},
缩放:8
});
var drawingManager=new google.maps.drawing.drawingManager({
drawingMode:google.maps.drawing.OverlyType.MARKER,
drawingControl:对,
drawingControlOptions:{
位置:google.maps.ControlPosition.TOP_CENTER,
绘图模式:[
google.maps.drawing.overlytype.MARKER,
google.maps.drawing.overlytype.CIRCLE,
google.maps.drawing.OverlyType.POLYGON,
google.maps.drawing.OverlyType.POLYLINE,
google.maps.drawing.overlytype.RECTANGLE
]
},
标记选项:{
图标:'https://developers.google.com/maps/documentation/javascript/examples/full/images/beachflag.png'
},
循环操作:{
填充颜色:'#ffff00',
不透明度:1,
冲程重量:5,
可点击:false,
是的,
zIndex:1
}
});
drawingManager.setMap(map);
var dataLayer=new google.maps.Data();
//从https://stackoverflow.com/questions/25072069/export-geojson-data-from-google-maps
//从http://jsfiddle.net/doktormolle/5F88D/
google.maps.event.addListener(drawingManager,'OverlyComplete',函数(事件){
开关(事件类型){
case google.maps.drawing.overlytype.MARKER:
添加(新的google.maps.Data.Feature({
几何体:新的google.maps.Data.Point(event.overlay.getPosition())
}));
打破
case google.maps.drawing.OverlayType.RECTANGLE:
var b=event.overlay.getBounds(),
p=[b.getSouthWest(){
lat:b.getSouthWest().lat(),
液化天然气:b.getNorthEast().液化天然气()
},
b、 获取东北(){
液化天然气:b.getSouthWest().lng(),
lat:b.getNorthEast().lat()
}
]
添加(新的google.maps.Data.Feature({
几何:新的google.maps.Data.Polygon([p])
}));
打破
案例google.maps.drawing.OverlayType.POLYGON:
添加(新的google.maps.Data.Feature({
几何体:新的google.maps.Data.Polygon([event.overlay.getPath().getArray()])
}));
打破
案例google.maps.drawing.OverlayType.POLYLINE:
添加(新的google.maps.Data.Feature({
几何体:新的google.maps.Data.LineString(event.overlay.getPath().getArray())
}));
打破
案例google.maps.drawing.OverlayType.CIRCLE:
添加(新的google.maps.Data.Feature({
特性:{
radius:event.overlay.getRadius()
},
几何体:新的google.maps.Data.Point(event.overlay.getCenter())
}));
打破
}
});
google.maps.event.addDomListener(document.getElementById('save'),'click',function(){
toGeoJson(函数(obj){
document.getElementById('geojson').innerHTML=JSON.stringify(obj);
});
})
}
google.maps.event.addDomListener(窗口'load',initMap)
html,
身体{
身高:100%;
保证金:0;
填充:0;
}
#地图{
身高:100%;
}

相关问题: