【问题标题】:Show/hide all figures drawing in drawingManager在drawingManager中显示/隐藏所有图形
【发布时间】:2014-11-12 18:10:31
【问题描述】:

我的项目与 GPS 和跟踪系统有关。我用drawingManager在谷歌地图api v3上绘制地理围栏。我需要一个按钮,单击它将显示/隐藏所有绘图管理器数字。在我的项目中,我也使用 angularJS。我有 2 个不同的指令。在 1-st 我声明绘图管理器

var polyOption = {
    fillColor: '#ffff00',
    fillOpacity: 0.4,
    strokeWeight: 1,
    clickable: true,
    editable: true,
    zIndex: 1
};
drawingManager = new google.maps.drawing.DrawingManager({
    drawingControl: true,
    drawingControlOptions: {
        position: google.maps.ControlPosition.BOTTOM_CENTER,
            drawingModes: [
              google.maps.drawing.OverlayType.MARKER,
              google.maps.drawing.OverlayType.CIRCLE,
              google.maps.drawing.OverlayType.POLYGON,
              google.maps.drawing.OverlayType.POLYLINE,
              google.maps.drawing.OverlayType.RECTANGLE
            ]
     },
     circleOptions: polyOption,
     rectangleOptions: polyOption,
     polygonOptions: polyOption,
     polylineOptions: polyOption,
});
scope.geozonesConfig.tempDrawManagerVar = true;
scope.geozonesConfig.tempDrawManagerHide = false;
drawingManager.setMap(map);


google.maps.event.addListener(drawingManager, 'overlaycomplete', function(e) {
    if (e.type != google.maps.drawing.OverlayType.MARKER) {
        // Switch back to non-drawing mode after drawing a shape.      
        drawingManager.setDrawingMode(null);
        // To hide:              
        // Add an event listener that selects the newly-drawn shape when the user
        // mouses down on it.
        var newShape = e.overlay;                      
        newShape.type = e.type;
        google.maps.event.addListener(newShape, 'click', function() {
          setSelection(newShape);
          scope.$apply (function () {
            scope.geozonesConfig.showGeozoneConfig = true;
          });
        });
    setSelection(newShape);
});
google.maps.event.addListener(drawingManager, 'drawingmode_changed', clearSelection);
google.maps.event.addListener(map, 'click', clearSelection);
google.maps.event.addDomListener(document.getElementById('delete-button'), 'click', deleteSelectedShape);
buildColorPalette();

这是我的按钮。我使用了 ng-click:

 <a href="javascript:void(0)" title="{{ 'Add geozone' | translate }}" ng-click="onGeozoneClick()"><i class="icon-globe"></i></a>

`而我的函数位于另一个指令中:

 scope.onGeozoneClick = function () {
            alert('Show/Hide all figures');
 };

如何显示/隐藏这些绘图管理器图形?谢谢。

编辑:更新来自 OP 的回复作为答案

我如何在 js 中做到这一点?我不知道如何参考我的数字。据我所知,这些数字在谷歌地图 api 中没有任何方法。现在我尝试使用figuresOptions的可见属性来做到这一点: var anchorShowHideFigure = true; var polyOption = {visible = anchorShowHideFigure }; 然后我想在单击按钮后将标志更改为 false。如果我将在我的 1-st 指令中写: function showHideDrawingFigures () { anchorShowHideFigure = false; }; 在控制台中我得到:“showHideDrawingFigures 未定义”。如果我将它写入 2-nd 指令,我会得到:“anchorShowHideFigure 未定义”我得到这个,因为我的 html 文件使用 2-nd 指令。对不起,如果我解释得很复杂 -

【问题讨论】:

    标签: javascript angularjs google-maps-api-3


    【解决方案1】:

    为此检查 ng-showng-hide 指令。

    在 $scope 中创建一个标志,比如 showFigures。用于切换 fla

    $scope.onGeozoneClick = function () {
            $scope.showFigures = false;
     };
    

    在 HTML 中,

    <div ng-show="showFigures"></div>
    

    【讨论】:

    • 有一个问题。我没有任何 div 或其他东西。我只有绘图管理器绘制的谷歌地图 api 上的数字。我不能以任何方式提及它们。它们只是在地图上以及如何应用它们,我不知道。
    • 在这种情况下,我认为您需要不按角度进行操作(正常的 JS 方式)。 Angular google maps 可能值得一看,可能会解决您的问题。
    • 如何在js中做到这一点?我不知道如何参考我的数字。据我所知,谷歌地图 api 中没有任何方法可以处理这些数字。
    • 现在我尝试使用图形选项的可见属性:var polyOption = { fillColor: '#ffff00', fillOpacity: 0.4, strokeWeight: 1, clickable: true, editable: true, zIndex: 1 };
    • 现在我尝试使用图形选项的可见属性来做到这一点:var anchorShowHideFigure = true; var polyOption = {可见 = anchorShowHideFigure };然后我想在单击按钮后将标志更改为 false。如果我将在我的 1-st 指令中写入: function showHideDrawingFigures () { anchorShowHideFigure = false; };在控制台中我得到:“showHideDrawingFigures 未定义”。如果我将它写入 2-nd 指令,我会得到:“anchorShowHideFigure 未定义”我得到这个,因为我的 html 文件使用 2-nd 指令。对不起,如果我解释得很复杂
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多