【问题标题】:Configuring heatmap overlays using Google Maps API使用 Google Maps API 配置热图叠加层
【发布时间】:2011-12-15 01:44:35
【问题描述】:

我正在尝试使用 Google Maps API 生成位置热图。它可以工作,但结果不是很有用,因为热图渲染的部分很小,很难看到:

文档中没有任何内容建议扩展热图以呈现更大的 blob 的方法。是否有一种未记录的方式来执行此操作,或者这只是 API 的限制?我只需要更多的数据点吗?我在下面粘贴了我正在使用的代码。

<!DOCTYPE html>
<html>
  <head>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
    <style type="text/css">
      html {
        height: 100%
      }

      body {
        height: 100%;
        margin: 0px;
        padding: 0px
      }

      #map {
        height: 100%
      }
    </style>

    <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
    <script type="text/javascript">
      function initialize() {
        var myLatlng = new google.maps.LatLng(44.646959,-63.589697);
        var myOptions = {
          zoom : 14,
          center : myLatlng,
          mapTypeId : google.maps.MapTypeId.ROADMAP
        }

        var map = new google.maps.Map(document.getElementById('map'), myOptions);

        var layer = new google.maps.FusionTablesLayer({
          query: {
            select: 'geometry',
            from: '[ fusion table id removed ]'
          },
          heatmap: { enabled: true }
        });

        layer.setMap(map);
      }
    </script>
  </head>
  <body onload="initialize()">
    <div id="map"></div>
  </body>
</html>

【问题讨论】:

    标签: javascript google-maps-api-3 overlay google-fusion-tables heatmap


    【解决方案1】:

    查看最大强度。我有一个类似的问题。 maxIntensity 结合半径修复了它。

    maxIntensity:热图的最大强度。默认, 热图颜色根据最大的动态缩放 地图上任何特定像素的点集中度。这 属性允许您指定一个固定的最大值。设置最大值 当您的数据集包含一些异常值时,强度可能会有所帮助 具有异常高的强度。

    【讨论】:

    • 这对我也有用。 maxIntensity 的合理范围是多少?
    • 你在哪里设置 maxIntensity 选项?内部热图:{ enabled: true, maxIntensity: 80 } 对我不起作用。
    【解决方案2】:

    如果您使用 Google Maps Javascript API v3(与您当前使用的 Fusion Tables API 不同),您可以设置热图对象的“半径”属性,以完全按照您的意愿行事。正在尝试做。

    很遗憾,使用 Fusion Tables API 无法做到这一点。文档甚至明确提到了这一点:

    融合表层:No ability to customize the appearance of the heatmap.

    【讨论】:

      【解决方案3】:

      是的。

      查看我正在使用的代码:

      heatmap = new google.maps.visualization.HeatmapLayer({
          dissipating: true,
          map: map,
          radius: 50
      });
      

      半径以米为单位,所以我的斑点直径为 100 米。 如果这对您有帮助,请告诉我。

      【讨论】:

      猜你喜欢
      • 2012-04-11
      • 1970-01-01
      • 2011-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多