4

J'essaie d'utiliser l'API Google Maps pour générer une carte thermique des emplacements. Il fonctionne, mais le résultat est pas très utile, puisque les parties rendues par la heatmap sont petites sont difficiles à voir:Configuration des superpositions de carte de chaleur à l'aide de l'API Google Maps

google maps heatmap problem

Rien dans les documents suggèrent un moyen d'élargir la heatmap rendre dans blobs plus grandes . Existe-t-il une manière non documentée de le faire ou est-ce juste une limitation de l'API? Est-ce que j'ai juste besoin de plus de points de données? J'ai collé le code que j'utilise ci-dessous.

<!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> 

Répondre

1

Si vous utilisez Google Maps API Javascript v3 (par opposition à l'API Fusion Tables vous en cours d'utilisation) vous pouvez définir la propriété 'radius' de votre objet heatmap pour faire exactement ce que vous essayez de faire.

Malheureusement, il n'y a aucun moyen de le faire en utilisant l'API Fusion Tables. La documentation mentionne même explicitement:

Fusion Table couche: No ability to customize the appearance of the heatmap.

3

Check out maxIntensity. J'ai eu un problème similaire. maxIntensity combiné avec le rayon l'a fixé.

maxIntensity: L'intensité maximale de la carte thermique. Par défaut, les couleurs de la carte de chaleur sont mises à l'échelle de façon dynamique en fonction de la plus grande concentration de points sur un pixel particulier de la carte. Cette propriété vous permet de spécifier un maximum fixe. Définir l'intensité maximale peut être utile lorsque votre jeu de données contient quelques valeurs aberrantes avec une intensité anormalement élevée.

+0

cela fonctionne pour moi aussi. Quelles sont les plages sensibles pour maxIntensity? –

+1

Et où définissez-vous l'option maxIntensity? Heatmap intérieur: {enabled: true, maxIntensity: 80} ne fonctionne pas pour moi. – Arjen

0

Oui il y a.

Vérifiez le code que je utilise:

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

Le rayon est mesuré en mètres, donc mes blobs seront à 100 mètres de diamètre. Dites-moi si cela vous aide.

+3

Le rayon est en pixels, donc cela dépend du niveau du zoom –

+0

@Rene Pot Ceci est-il mentionné quelque part dans la documentation? Ce serait très utile. – nsane

+1

@ nisargshah95 - si ce n'était pas avant, c'est maintenant: https://developers.google.com/maps/documentation/javascript/heatmaplayer#customize_a_heatmap_layer –

Questions connexes