Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在googlemaps api中保存绘制的多边形_Javascript_Google Maps - Fatal编程技术网

Javascript 在googlemaps api中保存绘制的多边形

Javascript 在googlemaps api中保存绘制的多边形,javascript,google-maps,Javascript,Google Maps,大家好,我尝试从google map api保存一个绘制的多边形,但我不知道如何保存。我想保存多边形(坐标或路径)并将其作为表单发送。这是我现在所拥有的,我尝试阅读文档,但我不太懂 <script> function initMap() { var map = new google.maps.Map(document.getElementById('map'), { center: {lat: 46.435812, lng: 27.63

大家好,我尝试从google map api保存一个绘制的多边形,但我不知道如何保存。我想保存多边形(坐标或路径)并将其作为表单发送。这是我现在所拥有的,我尝试阅读文档,但我不太懂

<script>
    function initMap() {
        var map = new google.maps.Map(document.getElementById('map'), {
            center: {lat: 46.435812, lng: 27.639917},
            zoom: 17,
            mapTypeId: 'hybrid'});

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

       drawingManager.setMap(map);
    };
</script>

函数initMap(){
var map=new google.maps.map(document.getElementById('map'){
中心:{lat:46.435812,lng:27.639917},
缩放:17,
mapTypeId:'hybrid'});
var drawingManager=new google.maps.drawing.drawingManager({
drawingMode:google.maps.drawing.OverlyType.MARKER,
drawingControl:对,
drawingControlOptions:{
位置:google.maps.ControlPosition.TOP_CENTER,
绘图模式:[“多边形”]
},
});
drawingManager.setMap(map);
};
编辑:


对于多边形,执行与类似问题中相同的操作:,只需对多边形使用相应的事件(
polygoncomplete
)并处理路径,将所有坐标添加到相应的表单字段:

google.maps.event.addListener(drawingManager, 'polygoncomplete', function(polygon) {
  var coordStr = "";
  for (var i = 0; i < polygon.getPath().getLength(); i++) {
    coordStr += polygon.getPath().getAt(i).toUrlValue(6) + ";";
    console.log(coordStr);
    document.getElementById('coords').value = coordStr;
  }
});


你发布的内容可能会重复,这对我有帮助,但我不需要矩形,我需要多边形。你知道怎么做吗?可以“google.maps.event.adddomstener(窗口,“load”,initMap);”应该在initMap中。现在它正在工作。不,不应该在
initMap
函数中。如果Google Maps Javascript API(API完成加载时异步调用
initMap
)中包含
callback=initMap
,则您不需要该行。如果这回答了您的问题,请
google.maps.event.addListener(drawingManager, 'polygoncomplete', function(polygon) {
  var coordStr = "";
  for (var i = 0; i < polygon.getPath().getLength(); i++) {
    coordStr += polygon.getPath().getAt(i).toUrlValue(6) + ";";
    console.log(coordStr);
    document.getElementById('coords').value = coordStr;
  }
});