Condividi tramite


Aggiungere una barra degli strumenti di disegno a una mappa

Questo articolo illustra come usare il modulo Strumenti di disegno e visualizzare la barra degli strumenti di disegno sulla mappa. Il controllo Barra degli strumenti di disegno aggiunge la barra degli strumenti di disegno sulla mappa. Questo articolo illustra come creare mappe con solo uno o tutti gli strumenti di disegno e come personalizzare il rendering delle forme di disegno nel gestore disegno.

Aggiungere la barra degli strumenti di disegno

Il codice seguente crea un'istanza del gestore disegno e visualizza la barra degli strumenti sulla mappa.

//Create an instance of the drawing manager and display the drawing toolbar.
drawingManager = new atlas.drawing.DrawingManager(map, {
        toolbar: new atlas.control.DrawingToolbar({
            position: 'top-right',
            style: 'dark'
        })
    });

Per un esempio reale completo che illustra come aggiungere una barra degli strumenti di disegno alla mappa, vedere Aggiungere la barra degli strumenti di disegno per eseguire il mapping negli esempi di Mappe di Azure. Per il codice sorgente di questo esempio, vedere Aggiungere una barra degli strumenti di disegno al codice sorgente della mappa.

Screenshot che mostra la barra degli strumenti di disegno in una mappa.

Limitare le opzioni della barra degli strumenti visualizzate

Il codice seguente crea un'istanza del gestore disegno e visualizza la barra degli strumenti con uno strumento di disegno di poligoni su una mappa.

//Create an instance of the drawing manager and display the drawing toolbar with polygon drawing tool.
drawingManager = new atlas.drawing.DrawingManager(map, {
        toolbar: new atlas.control.DrawingToolbar({
            position: 'top-right',
            style: 'light',
            buttons: ["draw-polygon"]
        })
    });

Lo screenshot seguente mostra un esempio di un'istanza del gestore disegno che mostra la barra degli strumenti con un solo strumento di disegno sulla mappa:

Screenshot che mostra un'istanza del gestore disegno che visualizza la barra degli strumenti con solo uno strumento di disegno di poligoni sulla mappa.

Modificare lo stile di rendering del disegno

Lo stile delle forme disegnate può essere personalizzato recuperando i livelli sottostanti del gestore disegno utilizzando le funzioni drawingManager.getLayers() e drawingManager.getPreviewLayers() e quindi impostando le opzioni sui singoli livelli. Gli handle di trascinamento visualizzati per le coordinate durante la modifica di una forma sono indicatori HTML. Lo stile degli handle di trascinamento può essere personalizzato passando le opzioni del marcatore HTML nelle opzioni di dragHandleStyle e secondaryDragHandleStyle di gestore disegno.

Il codice seguente ottiene i livelli di rendering dal gestore disegno e modifica le relative opzioni per modificare lo stile di rendering per il disegno. In questo caso, viene eseguito il rendering dei punti con un'icona marcatore blu. Le linee sono rosse e larghe quattro pixel. I poligoni hanno un colore di riempimento verde e un contorno arancione. Ciò modifica quindi gli stili degli handle di trascinamento in modo che siano icone quadrate.

//Get rendering layers of drawing manager.
var layers = drawingManager.getLayers();

//Change the icon rendered for points.
layers.pointLayer.setOptions({
    iconOptions: {
        image: 'marker-blue'
    }
});

//Change the color and width of lines.
layers.lineLayer.setOptions({
    strokeColor: 'red',
    strokeWidth: 4
});

//Change fill color of polygons.
layers.polygonLayer.setOptions({
    fillColor: 'green'
});

//Change the color of polygon outlines.
layers.polygonOutlineLayer.setOptions({
    strokeColor: 'orange'
});


//Get preview rendering layers from the drawing manager and modify line styles to be dashed.
var previewLayers = drawingManager.getPreviewLayers();
previewLayers.lineLayer.setOptions({ strokeColor: 'red', strokeWidth: 4, strokeDashArray: [3,3] });
previewLayers.polygonOutlineLayer.setOptions({ strokeColor: 'orange', strokeDashArray: [3, 3] });

//Update the style of the drag handles that appear when editing.
drawingManager.setOptions({
    //Primary drag handle that represents coordinates in the shape.
    dragHandleStyle: {
        anchor: 'center',
        htmlContent: '<svg width="15" height="15" viewBox="0 0 15 15" xmlns="http://www.w3.org/2000/svg" style="cursor:pointer"><rect x="0" y="0" width="15" height="15" style="stroke:black;fill:white;stroke-width:4px;"/></svg>',
        draggable: true
    },

    //Secondary drag handle that represents mid-point coordinates that users can grab to add new coordinates in the middle of segments.
    secondaryDragHandleStyle: {
        anchor: 'center',
        htmlContent: '<svg width="10" height="10" viewBox="0 0 10 10" xmlns="http://www.w3.org/2000/svg" style="cursor:pointer"><rect x="0" y="0" width="10" height="10" style="stroke:white;fill:black;stroke-width:4px;"/></svg>',
        draggable: true
    }
});  

Per un esempio reale completo che illustra come personalizzare il rendering delle forme di disegno nel gestore disegno accedendo ai livelli di rendering, vedere Modificare lo stile di rendering del disegno negli esempi di Mappe di Azure. Per il codice sorgente di questo esempio, vedere Modificare il codice sorgente dello stile di rendering del disegno.

Screenshot che mostra il rendering con forme di disegno diverse su una mappa.

Nota

Quando si usa la modalità di modifica, le forme possono essere ruotate. La rotazione è supportata dalle geometrie MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon e Rectangle. Le geometrie punto e cerchio non possono essere ruotate.

Passaggi successivi

Vedere le informazioni su come usare altre funzionalità del modulo strumenti di disegno:

Per altre informazioni sulle classi e sui metodi usati in questo articolo, vedere: