javascript - Google map API v3 绘图管理器未正确绘制虚线折线

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

我尝试将此示例与绘图管理器一起使用: https://developers.google.com/maps/documentation/javascript/examples/overlay-symbol-dashed

Jsfiddle demo

  var lineSymbol = {
      path: 'M 0,-1 0,1',
      strokeOpacity: 1,
      scale: 4
      };
  var drawingManager = new google.maps.drawing.DrawingManager({
  polylineOptions: {
      icons: [{
      icon: lineSymbol,
    // offset: '100%',
    offset: '0',
    repeat: '20px'
  }],
  editable: true
},  });
drawingManager.setMap(map);

请仅在此演示中尝试折线,因为我仅将折线选项设置为虚线图标。多边形略有改变,但顶部似乎有一条连续的线重叠。 如何删除实线?

最佳答案

您需要在折线上设置行程不透明度:0(在PolylineOptions中):

var drawingManager = new google.maps.drawing.DrawingManager({
    polylineOptions: {
    icons: [{
      icon: lineSymbol,
      // offset: '100%',
      offset: '0',
      repeat: '20px'
    }],
    strokeOpacity: 0,
    editable: true
  },
});

updated fiddle

enter image description here

代码片段:

function initMap() {
  var map = new google.maps.Map(document.getElementById('map'), {
    zoom: 15,
    center: {
      lat: 17.4446,
      lng: 78.3802
    }
  });
  var lineSymbol = {
    path: 'M 0,-1 0,1',
    strokeOpacity: 1,
    scale: 4

  };
  var drawingManager = new google.maps.drawing.DrawingManager({
    polylineOptions: {
      icons: [{
        icon: lineSymbol,
        // offset: '100%',
        offset: '0',
        repeat: '20px'
      }],
      strokeOpacity: 0,
      editable: true
    },
  });
  drawingManager.setMap(map);


  google.maps.event.addListener(drawingManager, 'markercomplete', function(m) {
    markersArray.push(m);

    google.maps.event.addListener(m, 'click', function() {
      var infoBox = new google.maps.InfoWindow();
      infoBox.setContent('Marker Info');
      infoBox.open(map, this);
    });

  });

  /* dmMarkerOptions = {
            drawingMode: google.maps.drawing.OverlayType.MARKER,
            drawingControl: true,
            drawingControlOptions: {
                position: google.maps.ControlPosition.TOP_CENTER,
                drawingModes: [
                    google.maps.drawing.OverlayType.MARKER
                ]
            },
            markerOptions: {
                clickable: true,
                editable: true,
                draggable: false
            }
        };

        dmPolygonOptions = {
            drawingMode: google.maps.drawing.OverlayType.POLYGON,
            drawingControl: true,
            drawingControlOptions: {
                position: google.maps.ControlPosition.TOP_CENTER,
                drawingModes: [
                    google.maps.drawing.OverlayType.POLYGON,
                ]
            },
            polygonOptions: {
                clickable: true,
                editable: true,
                strokeColor: '#FF0000',
                strokeOpacity: 1,
                strokeWeight: 2,
                fillOpacity: 0
            }
        };
    */
  //drawingManager.setOptions(dmPolygonOptions)
}
#map {
  height: 100%;
}

html,
body {
  height: 100%;
  margin: 0;
  padding: 0;
}
<div id="map"></div>
<script async defer src="https://maps.googleapis.com/maps/api/js?libraries=drawing&callback=initMap&key=AIzaSyCkUOdZ5y7hMm0yrcCQoCvLwzdM6M8s5qk">
</script>

关于javascript - Google map API v3 绘图管理器未正确绘制虚线折线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43794483/

相关文章:

javascript - 有没有办法修改在使用媒体功能和 javascript 的媒体查询下创建的样式?

javascript - 状态未在 componentDidMount 中更新

javascript - Google Map Bug,Dragend Event 也会触发 IE 中的 Click Event

javascript - 当我将鼠标悬停在 Google map v3 中的特定区域时,如何更改鼠标光标?

javascript - UIWebView 未正确评估 javascript

google-maps - 按英国邮政编码向 Google map 添加多个图钉

algorithm - 将 Google map 上的一组点平均为一个较小的集合

javascript - 谷歌映射多个自定义标记,其中的数字引用列表中的项目

javascript - 在通过 loadGeoJson() 加载的要素上创建信息窗口

Javascript - 正则表达式 - 全局搜索问题