如何在地图上用渐变绘制一个区域



我想画一个形状(为了简单起见,假设是矩形),覆盖一个区域,颜色从绿色变化到红色。唯一的方法是绘制大量的小矩形,通过索引来改变颜色,还是有一种方法来声明一个渐变的从到(或者更好的是从到到)颜色数组?

我认为你可以使用html画布来创建渐变并填充你的形状(http://www.w3schools.com/tags/canvas_createlineargradient.asp)。

或者你可以使用svg渐变(https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Gradients)。

你也可以尝试使用一个html地图区域与一些插件。

对于像这样绘制的地图多边形。这里描述了它们的参数。似乎他们只支持没有渐变的颜色,但作为一个选项,你可以尝试像这样的覆盖。

如果你正在使用谷歌地图,你可以尝试使用梯度的热图

如果你真的想要一个热图,正如你在@jaganathan bantheswaran回答中的评论所建议的那样,那么你将能够使用H.data.heatmap.Provider类

在HERE Maps中做到这一点

API参考描述了如何做到这一点:

// Create heat map provider
var heatmapProvider = new H.data.heatmap.Provider({
  colors: new H.data.heatmap.Colors({
  '0': 'blue',
  '0.5': 'yellow',
  '1': 'red'
  }, true),
  // paint assumed values in regions where no data is available
  assumeValues: true
});
// Add the data
heatmapProvider.addData([
  {lat: 52, lng: 1, value: 1},
  {lat: 53, lng: 2, value: 2}
]);
// Create semi transparent heat map layer
var heatmapLayer = new H.map.layer.TileLayer(heatmapProvider, {
  opacity: 0.6
});
// Add layer to the map
map.addLayer(heatmapLayer);

相关内容

最新更新