2

DrawingManager を介して描画された形状を格納している all_overlays 配列に形状をロードしたい:

    drawingManager = new google.maps.drawing.DrawingManager({
      drawingMode: google.maps.drawing.OverlayType.POLYGON,
      drawingControlOptions:{
        position: google.maps.ControlPosition.TOP_RIGHT,
        drawingModes:[
                 google.maps.drawing.OverlayType.POLYGON
            ]
      },
      markerOptions: {
        draggable: true
      },
      polylineOptions: {
        editable: true
      },
      rectangleOptions: polyOptions,
      circleOptions: polyOptions,
      polygonOptions: polyOptions,
      map: map
    });

    google.maps.event.addListener(drawingManager, 'overlaycomplete', function(e) {
        all_overlays.push(e);
        if (e.type != google.maps.drawing.OverlayType.MARKER) {
        drawingManager.setDrawingMode(null);
        var newShape = e.overlay;
        newShape.type = e.type;
        google.maps.event.addListener(newShape, 'click', function() {
          setSelection(newShape);
        });
        setSelection(newShape);
      }
    });

しかし、問題は、これをプッシュすると、そのタイプが Drawing Manager によって生成されたものとは異なるように見えることです:

>all_overlays // array have a drawing manager generated object
[Object]
>coords = [ new google.maps.LatLng(-20.2164629885305, -70.1565831899643), new google.maps.LatLng(-20.2166618288932, -70.15673339366913), new google.maps.LatLng(-20.21687325381024, -70.15626400709152), new google.maps.LatLng(-20.21664672710243, -70.15616208314896)];
[Q,Q,Q,Q]
>p1= new google.maps.Polygon({paths: coords,editable: true });
Kh<br>
>all_overlays.push(p1);
2
>all_overlays;
[Object, Kh]

次に、新しい形状は Object ではなく 'Kh' のように表示され、オーバーレイやタイプのプロパティはありません。イベントをアタッチするために DM で作成された最初の形状のような形状をどのように作成するのか疑問に思っています他のリスナーのようなリスナー...

DMでロードされたものを変更できるようにするために、それを行う必要があります..

ありがとう

4

1 に答える 1