Настройка наложений тепловых карт с помощью Google Maps API - PullRequest
4 голосов
/ 25 октября 2011

Я пытаюсь использовать API Карт Google для создания тепловой карты местоположений. Это работает, но результат не очень полезен, так как детали, отображаемые в тепловой карте, малы, их трудно увидеть:

google maps heatmap problem

Ничто в документах не предлагает способ расширить тепловую карту для рендеринга в больших каплях. Есть ли недокументированный способ сделать это или это просто ограничение 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>

Ответы [ 4 ]

3 голосов
/ 10 января 2013

Проверьте maxIntensity. У меня была похожая проблема. maxIntensity в сочетании с фиксированным радиусом.

maxIntensity: максимальная интенсивность тепловой карты. По умолчанию, цвета тепловой карты динамически масштабируются в соответствии с наибольшим концентрация точек на любом конкретном пикселе на карте. это Свойство позволяет указать фиксированный максимум. Установка максимума Интенсивность может быть полезна, когда ваш набор данных содержит несколько выбросов с необычно высокой интенсивностью.

2 голосов
/ 16 ноября 2011

Тепловая карта отлично работает для некоторых наборов данных и не очень хорошо для других. Возможно, вас заинтересует один или оба следующих запроса функций:

http://code.google.com/p/fusion-tables/issues/detail?id=85

http://code.google.com/p/fusion-tables/issues/detail?id=68

1 голос
/ 19 июля 2012

Если вы используете Google Maps Javascript API v3 (в отличие от API Fusion Tables, который вы используете в настоящее время), вы можете установить свойство radius вашего объекта Heatmap, чтобы делать именно то, что вы пытаясь сделать.

К сожалению, нет способа сделать это с помощью API Fusion Tables. В документации даже упоминается это явно:

Fusion Table Layer: Нет возможности настроить внешний вид тепловой карты.

0 голосов
/ 24 января 2013

Да, есть.

Проверьте код, который я использую:

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

Радиус измеряется в метрах, поэтому мои капли будут иметь диаметр 100 метров. Дайте мне знать, если это вам поможет.

...