لایه Heatmap رندر سمت مشتری از نقشه های حرارتی را ارائه می دهد.
نمای کلی
نقشه حرارتی تصویرسازی است که برای نشان دادن شدت داده ها در نقاط جغرافیایی استفاده می شود. هنگامی که لایه Heatmap فعال است، یک پوشش رنگی در بالای نقشه ظاهر می شود. به طور پیش فرض، مناطق با شدت بالاتر قرمز رنگ و مناطق با شدت کمتر سبز به نظر می رسند.
کتابخانه تجسم را بارگیری کنید
لایه Heatmap بخشی از کتابخانه google.maps.visualization است و به طور پیش فرض بارگیری نمی شود. کلاس های Visualization یک کتابخانه مستقل و جدا از کد اصلی Maps JavaScript API هستند. برای استفاده از عملکرد موجود در این کتابخانه، ابتدا باید آن را با استفاده از پارامتر libraries در URL بوت استرپ Maps JavaScript API بارگیری کنید:
برای افزودن یک لایه Heatmap، ابتدا باید یک شی HeatmapLayer جدید ایجاد کنید و برخی از داده های جغرافیایی را در قالب یک آرایه یا یک شی MVCArray[] در اختیار آن قرار دهید. داده ها ممکن است یک شی LatLng یا یک شی WeightedLocation باشند. پس از نمونه سازی شی HeatmapLayer ، با فراخوانی متد setMap() آن را به نقشه اضافه کنید.
مثال زیر 14 نقطه داده را به نقشه سانفرانسیسکو اضافه می کند.
/* Data points defined as an array of LatLng objects */varheatmapData=[newgoogle.maps.LatLng(37.782,-122.447),newgoogle.maps.LatLng(37.782,-122.445),newgoogle.maps.LatLng(37.782,-122.443),newgoogle.maps.LatLng(37.782,-122.441),newgoogle.maps.LatLng(37.782,-122.439),newgoogle.maps.LatLng(37.782,-122.437),newgoogle.maps.LatLng(37.782,-122.435),newgoogle.maps.LatLng(37.785,-122.447),newgoogle.maps.LatLng(37.785,-122.445),newgoogle.maps.LatLng(37.785,-122.443),newgoogle.maps.LatLng(37.785,-122.441),newgoogle.maps.LatLng(37.785,-122.439),newgoogle.maps.LatLng(37.785,-122.437),newgoogle.maps.LatLng(37.785,-122.435)];varsanFrancisco=newgoogle.maps.LatLng(37.774546,-122.433523);map=newgoogle.maps.Map(document.getElementById('map'),{center:sanFrancisco,zoom:13,mapTypeId:'satellite'});varheatmap=newgoogle.maps.visualization.HeatmapLayer({data:heatmapData});heatmap.setMap(map);
اضافه کردن امتیاز داده های وزنی
یک نقشه حرارتی می تواند اشیاء LatLng یا WeightedLocation یا ترکیبی از این دو را ارائه دهد. هر دو شی نشان دهنده یک نقطه داده واحد بر روی نقشه هستند، اما یک شی WeightedLocation به شما امکان می دهد وزن دیگری را برای آن نقطه داده مشخص کنید. اعمال وزن به یک نقطه داده باعث می شود که WeightedLocation با شدت بیشتری نسبت به یک شی LatLng ساده رندر شود. وزن یک مقیاس خطی است، که در آن هر شی LatLng دارای وزن ضمنی 1 است — با افزودن یک WeightedLocation از {location: new google.maps.LatLng(37.782, -122.441), weight: 3} تأثیری مشابه با افزودن google.maps.LatLng(37.782, -122.441) خواهد داشت. می توانید اشیاء weightedLocation و LatLng را در یک آرایه واحد ترکیب کنید.
استفاده از یک شی WeightedLocation به جای LatLng می تواند مفید باشد زمانی که:
افزودن حجم زیادی از داده ها در یک مکان واحد. رندر کردن یک شی WeightedLocation با وزن 1000 سریعتر از رندر کردن 1000 شی LatLng خواهد بود.
اعمال تاکید بر داده های خود بر اساس مقادیر دلخواه. به عنوان مثال، هنگام ترسیم داده های زلزله می توانید از اشیاء LatLng استفاده کنید، اما ممکن است بخواهید از WeightedLocation برای اندازه گیری بزرگی هر زمین لرزه در مقیاس ریشتر استفاده کنید.
/* Data points defined as a mixture of WeightedLocation and LatLng objects */varheatMapData=[{location:newgoogle.maps.LatLng(37.782,-122.447),weight:0.5},newgoogle.maps.LatLng(37.782,-122.445),{location:newgoogle.maps.LatLng(37.782,-122.443),weight:2},{location:newgoogle.maps.LatLng(37.782,-122.441),weight:3},{location:newgoogle.maps.LatLng(37.782,-122.439),weight:2},newgoogle.maps.LatLng(37.782,-122.437),{location:newgoogle.maps.LatLng(37.782,-122.435),weight:0.5},{location:newgoogle.maps.LatLng(37.785,-122.447),weight:3},{location:newgoogle.maps.LatLng(37.785,-122.445),weight:2},newgoogle.maps.LatLng(37.785,-122.443),{location:newgoogle.maps.LatLng(37.785,-122.441),weight:0.5},newgoogle.maps.LatLng(37.785,-122.439),{location:newgoogle.maps.LatLng(37.785,-122.437),weight:2},{location:newgoogle.maps.LatLng(37.785,-122.435),weight:3}];varsanFrancisco=newgoogle.maps.LatLng(37.774546,-122.433523);map=newgoogle.maps.Map(document.getElementById('map'),{center:sanFrancisco,zoom:13,mapTypeId:'satellite'});varheatmap=newgoogle.maps.visualization.HeatmapLayer({data:heatMapData});heatmap.setMap(map);
یک لایه Heatmap را سفارشی کنید
میتوانید نحوه نمایش نقشه حرارتی خود را با گزینههای نقشه حرارتی زیر سفارشی کنید. برای اطلاعات بیشتر به مستندات HeatmapLayerOptions مراجعه کنید.
dissipating : مشخص می کند که آیا نقشه های حرارتی در زوم از بین می روند یا خیر. هنگامی که پراکندگی نادرست است، شعاع نفوذ با سطح زوم افزایش مییابد تا اطمینان حاصل شود که شدت رنگ در هر مکان جغرافیایی خاص حفظ میشود. پیش فرض ها به درست است.
gradient : گرادیان رنگ Heatmap که به عنوان آرایه ای از رشته های رنگی CSS مشخص شده است. همه رنگهای CSS3 - از جمله RGBA - پشتیبانی میشوند به جز رنگهای با نام توسعهیافته و مقادیر HSL(A).
maxIntensity : حداکثر شدت نقشه حرارتی. بهطور پیشفرض، رنگهای نقشه حرارتی بهصورت پویا با توجه به بیشترین غلظت نقاط در هر پیکسل خاص روی نقشه مقیاسبندی میشوند. این ویژگی به شما امکان می دهد حداکثر ثابتی را تعیین کنید. تنظیم حداکثر شدت زمانی میتواند مفید باشد که مجموعه دادههای شما حاوی چند عدد پرت با شدت غیرمعمول بالا باشد.
radius : شعاع نفوذ برای هر نقطه داده، بر حسب پیکسل.
opacity : کدورت نقشه حرارتی که به صورت عددی بین 0 و 1 بیان می شود.
مثال زیر برخی از گزینه های سفارشی سازی موجود را نشان می دهد.
تاریخ آخرین بهروزرسانی 2025-08-06 بهوقت ساعت هماهنگ جهانی.
[null,null,["تاریخ آخرین بهروزرسانی 2025-08-06 بهوقت ساعت هماهنگ جهانی."],[[["\u003cp\u003eThe Heatmap Layer visualizes data intensity at geographical points using color gradients, typically with red for high intensity and green for low.\u003c/p\u003e\n"],["\u003cp\u003eTo use the Heatmap Layer, you must load the \u003ccode\u003egoogle.maps.visualization\u003c/code\u003e library using the \u003ccode\u003elibraries\u003c/code\u003e parameter in the Maps JavaScript API bootstrap URL.\u003c/p\u003e\n"],["\u003cp\u003eHeatmaps can be customized using options like \u003ccode\u003edissipating\u003c/code\u003e, \u003ccode\u003egradient\u003c/code\u003e, \u003ccode\u003emaxIntensity\u003c/code\u003e, \u003ccode\u003eradius\u003c/code\u003e, and \u003ccode\u003eopacity\u003c/code\u003e to control their appearance and behavior.\u003c/p\u003e\n"],["\u003cp\u003eData points for the heatmap can be provided as \u003ccode\u003eLatLng\u003c/code\u003e objects or \u003ccode\u003eWeightedLocation\u003c/code\u003e objects, with the latter allowing for specifying the intensity of each point using a weight value.\u003c/p\u003e\n"]]],[],null,["Select platform: [Android](/maps/documentation/android-sdk/utility/heatmap \"View this page for the Android platform docs.\") [iOS](/maps/documentation/ios-sdk/utility/heatmap \"View this page for the iOS platform docs.\") [JavaScript](/maps/documentation/javascript/heatmaplayer \"View this page for the JavaScript platform docs.\")\n\n1. [Overview](#overview)\n2. [Load the visualization library](#load_the_visualization_library)\n3. [Add Weighted Data Points](#add_weighted_data_points)\n4. [Customize a Heatmap Layer](#customize_a_heatmap_layer)\n\n| **[Deprecated:](/maps/deprecations)** The Heatmap Layer\n| functionality in the Maps JavaScript API will no longer be supported. This API was deprecated in\n| May 2025 and be made unavailable in a later version of the Maps JavaScript API, releasing in May\n| 2026. As a replacement for the Heatmap Layer, consider using third-party library integrations\n| like deck.gl, which offers a HeatmapLayer implementation. You can find more information in the\n| [deck.gl documentation](https://deck.gl/docs/api-reference/aggregation-layers/heatmap-layer).\n\nThe Heatmap Layer provides client side rendering of heatmaps.\n\nOverview\n\nA heatmap is a visualization used to depict the intensity of data at\ngeographical points. When the Heatmap Layer is enabled, a colored overlay will\nappear on top of the map. By default, areas of higher intensity will be colored\nred, and areas of lower intensity will appear green.\n\nLoad the visualization library\n\nThe Heatmap Layer is part of the `google.maps.visualization` library, and is not\nloaded by default. The Visualization classes are a self-contained library,\nseparate from the main Maps JavaScript API code. To use the functionality\ncontained within this library, you must first load it using the `libraries`\nparameter in the Maps JavaScript API bootstrap URL: \n\n```html\n\u003cscript async\n src=\"https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&loading=async&libraries=visualization&callback=initMap\"\u003e\n\u003c/script\u003e\n```\n\nAdd a Heatmap Layer\n\nTo add a Heatmap Layer, you must first create a new `HeatmapLayer`\nobject, and provide it with some geographic data in the form of an array or an\n`MVCArray[]` object. The data may be either a\n[`LatLng`](/maps/documentation/javascript/reference#LatLng)\nobject or a\n[`WeightedLocation`](/maps/documentation/javascript/reference#WeightedLocation)\nobject. After instantiating the `HeatmapLayer` object, add it to the\nmap by calling the `setMap()` method.\n\nThe following example adds 14 data points to a map of San Francisco. \n\n```javascript\n/* Data points defined as an array of LatLng objects */\nvar heatmapData = [\n new google.maps.LatLng(37.782, -122.447),\n new google.maps.LatLng(37.782, -122.445),\n new google.maps.LatLng(37.782, -122.443),\n new google.maps.LatLng(37.782, -122.441),\n new google.maps.LatLng(37.782, -122.439),\n new google.maps.LatLng(37.782, -122.437),\n new google.maps.LatLng(37.782, -122.435),\n new google.maps.LatLng(37.785, -122.447),\n new google.maps.LatLng(37.785, -122.445),\n new google.maps.LatLng(37.785, -122.443),\n new google.maps.LatLng(37.785, -122.441),\n new google.maps.LatLng(37.785, -122.439),\n new google.maps.LatLng(37.785, -122.437),\n new google.maps.LatLng(37.785, -122.435)\n];\n\nvar sanFrancisco = new google.maps.LatLng(37.774546, -122.433523);\n\nmap = new google.maps.Map(document.getElementById('map'), {\n center: sanFrancisco,\n zoom: 13,\n mapTypeId: 'satellite'\n});\n\nvar heatmap = new google.maps.visualization.HeatmapLayer({\n data: heatmapData\n});\nheatmap.setMap(map);\n```\n\nAdd Weighted Data Points\n\nA heatmap can render either\n[`LatLng`](/maps/documentation/javascript/reference#LatLng) or\n[`WeightedLocation`](/maps/documentation/javascript/reference#WeightedLocation)\nobjects, or a combination of the two. Both objects represent a single data\npoint on a map, but a `WeightedLocation` object allows you to additionally\nspecify a weight for that data point. Applying a weight to a data point will\ncause the `WeightedLocation` to be rendered with a greater intensity than a\nsimple `LatLng` object. The weight is a linear scale, in which each `LatLng`\nobject has an implicit weight of 1 --- adding a single `WeightedLocation`\nof `{location: new google.maps.LatLng(37.782, -122.441), weight: 3}` will have\nthe same effect as adding `google.maps.LatLng(37.782, -122.441)` three times.\nYou can mix `weightedLocation` and `LatLng` objects in a single array.\n\nUsing a `WeightedLocation` object in place of a `LatLng` can be useful when:\n\n- Adding large amounts of data at a single location. Rendering a single `WeightedLocation` object with a weight of 1000 will be faster than rendering 1000 `LatLng` objects.\n- Applying an emphasis to your data based upon arbitrary values. For example, you can use `LatLng` objects when plotting earthquake data, but you may want to use a `WeightedLocation` to measure the magnitude of each earthquake on the richter scale.\n\n```javascript\n/* Data points defined as a mixture of WeightedLocation and LatLng objects */\nvar heatMapData = [\n {location: new google.maps.LatLng(37.782, -122.447), weight: 0.5},\n new google.maps.LatLng(37.782, -122.445),\n {location: new google.maps.LatLng(37.782, -122.443), weight: 2},\n {location: new google.maps.LatLng(37.782, -122.441), weight: 3},\n {location: new google.maps.LatLng(37.782, -122.439), weight: 2},\n new google.maps.LatLng(37.782, -122.437),\n {location: new google.maps.LatLng(37.782, -122.435), weight: 0.5},\n\n {location: new google.maps.LatLng(37.785, -122.447), weight: 3},\n {location: new google.maps.LatLng(37.785, -122.445), weight: 2},\n new google.maps.LatLng(37.785, -122.443),\n {location: new google.maps.LatLng(37.785, -122.441), weight: 0.5},\n new google.maps.LatLng(37.785, -122.439),\n {location: new google.maps.LatLng(37.785, -122.437), weight: 2},\n {location: new google.maps.LatLng(37.785, -122.435), weight: 3}\n];\n\nvar sanFrancisco = new google.maps.LatLng(37.774546, -122.433523);\n\nmap = new google.maps.Map(document.getElementById('map'), {\n center: sanFrancisco,\n zoom: 13,\n mapTypeId: 'satellite'\n});\n\nvar heatmap = new google.maps.visualization.HeatmapLayer({\n data: heatMapData\n});\nheatmap.setMap(map);\n```\n\nCustomize a Heatmap Layer\n\nYou can customize how your heatmap will be rendered with the following heatmap\noptions. See the\n[`HeatmapLayerOptions`](/maps/documentation/javascript/reference#HeatmapLayerOptions) documentation for more information.\n\n- `dissipating`: Specifies whether heatmaps dissipate on zoom. When dissipating is false the radius of influence increases with zoom level to ensure that the color intensity is preserved at any given geographic location. Defaults to true.\n- `gradient`: The color gradient of the heatmap, specified as an array of CSS color strings. All [CSS3 colors](http://www.w3.org/TR/css3-color/#html4) --- including RGBA --- are supported except for [extended named\n colors](http://www.w3.org/TR/css3-color/#svg-color) and HSL(A) values.\n- `maxIntensity`: The maximum intensity of the heatmap. By default, heatmap colors are dynamically scaled according to the greatest concentration of points at any particular pixel on the map. This property allows you to specify a fixed maximum. Setting the maximum intensity can be helpful when your dataset contains a few outliers with an unusually high intensity.\n- `radius`: The radius of influence for each data point, in pixels.\n- `opacity`: The opacity of the heatmap, expressed as a number between 0 and 1.\n\nThe below example shows some of the customization options available.\n\n[View example](/maps/documentation/javascript/examples/layer-heatmap)"]]