Udostępnij za pośrednictwem


Dodawanie paska narzędzi do rysowania do mapy

W tym artykule pokazano, jak używać modułu Narzędzia do rysowania i wyświetlać pasek narzędzi rysunku na mapie. Kontrolka Paska narzędzi Rysunek dodaje pasek narzędzi rysunku na mapie. Dowiesz się, jak tworzyć mapy przy użyciu tylko jednego i wszystkich narzędzi do rysowania oraz jak dostosować renderowanie kształtów rysunku w menedżerze rysunku.

Dodawanie paska narzędzi rysowania

Poniższy kod tworzy wystąpienie menedżera rysunku i wyświetla pasek narzędzi na mapie.

//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'
        })
    });

Aby uzyskać kompletny przykład roboczy, który pokazuje, jak dodać pasek narzędzi rysunku do mapy, zobacz Dodawanie paska narzędzi rysunku do mapowania w przykładach usługi Azure Maps. Aby uzyskać kod źródłowy dla tego przykładu, zobacz Dodawanie paska narzędzi rysunku do mapowania kodu źródłowego.

Zrzut ekranu przedstawiający pasek narzędzi rysunku na mapie.

Ogranicz wyświetlane opcje paska narzędzi

Poniższy kod tworzy wystąpienie menedżera rysunku i wyświetla pasek narzędzi z narzędziem do rysowania wielokątnego na mapie.

//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"]
        })
    });

Poniższy zrzut ekranu przedstawia przykład wystąpienia menedżera rysunku, który wyświetla pasek narzędzi z jednym narzędziem do rysowania na mapie:

Zrzut ekranu przedstawiający wystąpienie menedżera rysunku, który wyświetla pasek narzędzi z narzędziem do rysowania wielokątnego na mapie.

Zmienianie stylu renderowania rysunku

Styl rysowanych kształtów można dostosować, pobierając bazowe warstwy menedżera rysunku przy użyciu drawingManager.getLayers() funkcji i, drawingManager.getPreviewLayers() a następnie ustawiając opcje dla poszczególnych warstw. Uchwyty przeciągania wyświetlane dla współrzędnych podczas edytowania kształtu to znaczniki HTML. Styl uchwytów przeciągania można dostosować, przekazując opcje znaczników HTML do dragHandleStyle opcji i secondaryDragHandleStyle menedżera rysunku.

Poniższy kod pobiera warstwy renderowania z menedżera rysunku i modyfikuje opcje zmiany stylu renderowania rysunku. W takim przypadku punkty są renderowane z niebieską ikoną znacznika. Linie są czerwone i cztery piksele szerokości. Wielokąty mają zielony kolor wypełnienia i pomarańczowy kontur. Następnie zmienia style uchwytów przeciągania, aby być ikonami kwadratowymi.

//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
    }
});  

Pełny przykład roboczy, który pokazuje, jak dostosować renderowanie kształtów rysunku w menedżerze rysunku, korzystając z warstw renderowania, zobacz Zmienianie stylu renderowania rysunku w przykładach usługi Azure Maps. Aby zapoznać się z kodem źródłowym dla tego przykładu, zobacz Zmienianie kodu źródłowego stylu renderowania rysunku.

Zrzut ekranu przedstawiający różne kształty rysunku renderowane na mapie.

Uwaga

W trybie edycji kształty można obracać. Rotacja jest obsługiwana z geometrii MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon i Prostokąt. Geometrie punktów i okręgów nie mogą być obracane.

Następne kroki

Dowiedz się, jak używać więcej funkcji modułu narzędzi do rysowania:

Dowiedz się więcej o klasach i metodach używanych w tym artykule: