使用 Google Maps API 配置热图叠加层

Posted

技术标签:

【中文标题】使用 Google Maps API 配置热图叠加层【英文标题】:Configuring heatmap overlays using 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>

【问题讨论】:

【参考方案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 米。 如果这对您有帮助,请告诉我。

【讨论】:

半径以像素为单位,因此取决于缩放级别 @Rene Pot 这在文档中的任何地方都提到过吗?那会很有帮助。 @nisargshah95 - 如果不是以前,那就是现在:developers.google.com/maps/documentation/javascript/…

以上是关于使用 Google Maps API 配置热图叠加层的主要内容,如果未能解决你的问题,请参考以下文章

带有 OpenWeatherMap 平铺层叠加的 Google Maps Javascript API

Google Maps API 3. 叠加层中的文本选择

使用 Google Maps Android API 构建派对应用?

Google Maps SDK [Android]:如何获取/设置热图的 MaxIntensity?

我可以在地理地图上叠加 ggplot 热图吗?

Esri Feature Services和Google Maps API v3