2016-12-07 54 views
2

我有一個XYZ格式的大數據(400萬行)。我想畫一張這樣的地圖http://en-gb.topographic-map.com/places/Ho-Chi-Minh-City-6643171/Javascript - Flood hazard map

嘗試heatmap.js(數據太大)和plot.ly countor map(縮放zoomin),但不能使用。謝謝。

+0

看看[谷歌熱點圖](https://developers.google.com/maps/documentation/javascript/examples/layer-heatmap) – Vanojx1

+0

你有另外一個插件嗎?因爲我使用我自己的API來繪製我的地圖,所有我想要的是在我的地圖上繪製覆蓋圖。 – YodaVN

回答

1

在您的示例中,它不是熱圖,而是覆蓋網站上http://wms.ess-ws.nrcan.gc.ca API生成的圖像。這是它在例子的站點js中的樣子。

Map.mapTypes.set('Toporama', new google.maps.ImageMapType({ 
     getTileUrl: function(Coordinates, Zoom) { 
      Copyrights.innerHTML = '<a href="http://www.nrcan.gc.ca" target="_blank">&copy; Natural Resources Canada</a>'; 
      var Projection = Map.getProjection(); 
      var Factor = Math.pow(2, Zoom); 
      var Bottom = Projection.fromPointToLatLng(new google.maps.Point(Coordinates.x * 256/Factor, (Coordinates.y + 1) * 256/Factor)); 
      var Top = Projection.fromPointToLatLng(new google.maps.Point((Coordinates.x + 1) * 256/Factor, Coordinates.y * 256/Factor)); 
      return 'http://wms.ess-ws.nrcan.gc.ca/wms/toporama_en?layers=WMS-Toporama&format=image/png&srs=EPSG:4326&service=WMS&version=1.1.1&request=GetMap&styles=&bbox=' + Bottom.lng() + ',' + Bottom.lat() + ',' + Top.lng() + ',' + Top.lat() + '&width=256&height=256'; 
     }, 
     tileSize: new google.maps.Size(256, 256), 
     name: 'Toporama (Canada)', 
     minZoom: 6, 
     maxZoom: 20 
    })); 

這可能是也是回答你,如果你可以使用或爲您的數據創建類似的API。在我看來,這些大數據不應該被瀏覽器處理。

+0

您可以看到疊加圖像,但是操作員可能想要看到洪水危險而不是高度。你有沒有采取OP的數據並生成圖像的方法? –

+0

感謝您的解決方案。 我的問題是,我有一個geoTIFF文件,我將它轉換爲XYZ文件,其中x是lat,y是lon,z是決定顏色的高度。我有我自己的API來繪製地圖,所以我想從上面的數據中繪製覆蓋圖以覆蓋我的地圖。 – YodaVN

+1

@Martin Gottweis,似乎YodaVN正在使用他自己的API,因此如果沒有深入研究就很難提出建議。 –