【问题标题】:How can I get smooth markers (SVG icons) on Google Maps?如何在 Google 地图上获得平滑标记(SVG 图标)?
【发布时间】:2018-09-01 14:19:40
【问题描述】:

我创建了一个标记以放置在 Google 地图上:

var compMarker = new google.maps.Marker({
    position: {lat: 33, lng: -118}
    map: map,
    label: {
        text: "10",
        color: "white",
        fontWeight: "bold"
    },
    icon: {
        path: google.maps.SymbolPath.CIRCLE,
        scale: 15,
        fillColor: "#4E90D9",
        fillOpacity: 1,
        strokeWeight: 1
    }
});

这是结果:

如您所见,这个圆圈看起来很波涛汹涌。有没有办法创建一个高质量的圈子?

【问题讨论】:

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


    【解决方案1】:

    一种选择是使用自定义 SVG 图标。

    icon: {
      url:'data:image/svg+xml;charset=utf-8,' + encodeURIComponent ('<svg viewBox="0 0 220 220" xmlns="http://www.w3.org/2000/svg"><circle cx="110" cy="110" r="100" stroke="black" fill="#4E90D9" fill-opacity="1.0" stroke-width="10" /></svg>'),
      size: new google.maps.Size(200,200),
      scaledSize: new google.maps.Size(32,32),
      anchor: new google.maps.Point(16,16),
      labelOrigin: new google.maps.Point(16,16)
    },
    

    proof of concept fiddle

    处理IE11中问题的相关问题:

    代码 sn-p:

    function initMap() {
      var pointA = new google.maps.LatLng(53.3163803, -6.2676661),
        myOptions = {
          zoom: 15,
          center: pointA
        },
        map = new google.maps.Map(document.getElementById('map-canvas'), myOptions),
        markerA = new google.maps.Marker({
          position: pointA,
          title: "SVG icon",
          label: {
            text: "10",
            color: "white"
          },
          icon: {
             url:'data:image/svg+xml;charset=utf-8,' + encodeURIComponent('<svg viewBox="0 0 220 220" xmlns="http://www.w3.org/2000/svg"><circle cx="110" cy="110" r="100" stroke="black" fill="#4E90D9" fill-opacity="1.0" stroke-width="10" /></svg>'),
            size: new google.maps.Size(200, 200),
            scaledSize: new google.maps.Size(32, 32),
            anchor: new google.maps.Point(16, 16),
            labelOrigin: new google.maps.Point(16, 16)
          },
          map: map
        });
    }
    google.maps.event.addDomListener(window, 'load', initMap);
    html,
    body,
    #map-canvas {
      height: 100%;
      width: 100%;
      padding: 0px;
      margin: 0px;
    }
    <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCkUOdZ5y7hMm0yrcCQoCvLwzdM6M8s5qk"></script>
    <div id='map-canvas'></div>

    【讨论】:

      猜你喜欢
      • 2011-04-20
      • 2013-03-27
      • 2017-06-23
      • 2021-03-09
      • 2011-03-19
      • 2014-03-13
      • 1970-01-01
      • 2019-10-09
      • 2011-04-25
      相关资源
      最近更新 更多