2013-02-15 71 views
4

我使用Mike Bostok的example將d3與Google Maps一起用於顯示等高線圖。這裏是我的代碼:SVG沒有繪製在谷歌地圖可見區域之外

http://bl.ocks.org/4959573

似乎一切都很好,除了等高線圖不拿得出的谷歌地圖的可見區域之外。我設法通過與地圖的尺寸​​打去解決這個問題:

#map { 
    width: 100%; 
    height: 3000px; 
    top: -1000px; 
} 

這不是最優的,不解決這個問題,因爲完全的,如果我在太多的放大,該地塊的規模將迅速超過地圖的大小和平移地圖將使其可見。

有沒有其他解決方法?

+2

我找到了解決此:http://stackoverflow.com/a/12027910/2075184 我改變了地圖樣式: '#map { 寬度:100%; 身高:100%; }' 輪廓層的風格得到改性這樣的: 'cont_layer \t .attr( 「寬度」, 「8000px」) \t .attr( 「高度」, 「8000px」) \t .style (「position」,「absolute」) \t .style(「top」,「 - 4000px」) \t .style(「left」,「 - 4000px」); ' SVG路徑的x和y座標必須偏移+ 4000px才能進行補償。我的git代碼現在反映了這些變化。 – sorcereral 2013-02-18 12:33:38

+2

你應該發佈你的解決方案作爲答案並接受它。 – 2013-03-07 19:05:44

+1

由於它是重複的,它不應該被刪除嗎? – BlueMagma 2013-03-27 18:18:49

回答

1

OP對自己的問題的解決方案,報價,格式化從註釋:

我改變了地圖風格:

#map { 
    width: 100%; 
    height: 100%; 
} 

輪廓層的風格得到了修改如下:

cont_layer 
    .attr("width","8000px") 
    .attr("height","8000px") 
    .style("position","absolute") 
    .style("top","-4000px") 
    .style("left","-4000px"); 

x和SVG路徑具有的y座標由+ 4000px偏移進行補償。