2013-10-10 42 views
-1

我正在創建靜態地圖創建2048大小限制。我有向上100,000座標,我,我繪製,然後讓我有一個按鈕拍攝地圖的屏幕截圖,因爲它是在屏幕上看到,目前,我這樣做:將google地圖捕獲爲圖片?

function plotMapPoints(locations) { 
    var marker, i, pos; 
    var image = "http://maps.google.com/maps/api/staticmap?sensor=false&center=0,0&zoom=" + map.getZoom() + "&size=512x512"; 

    for (i = 0; i < locations.length; i++) { 
     pos = new google.maps.LatLng(locations[i][0], locations[i][1]); 
     marker = new google.maps.Marker({ 
      position: pos, 
      map: map 
     }); 
     image += "&markers=" + pos.lat() + ',' + pos.lng(); 
    } 
    console.log(image); 
} 

當我在控制檯中點擊鏈接,它似乎被格式化很大的,但是,我收到此來自谷歌:

413. That’s an error. 

Your client issued a request that was too large. That’s all we know. 

是否的方式誰都知道要捕捉地圖爲圖像?我也嘗試過html2canvas,但是我有跨越原點畫布問題。

任何幫助將是偉大的。

+0

我不知道你是否可以捕捉到地圖所在的div作爲圖片的答案 - http:// stackoverflow.com/questions/13720815/capture-a-div-as-an-image –

+0

我曾嘗試過,但我仍然得到了跨瀏覽器來源警告 –

+0

您是否試圖通過從Google下載地圖工件來創建自己的GeoServer? – djangofan

回答

0

如果您使用Selenium(或PhantomJS,如果您想在不啓動Web瀏覽器的情況下執行此操作),您可以像this link suggests那樣執行此操作。你想要截圖的元素的XPath是:// * [@ id =「map」]

+0

我沒有使用這兩種方法中的任何一個,這是一個本地項目,它必須是獨立的(把它交給朋友),所以我不希望他需要安裝任何東西。 –

+0

我知道你可能可以在一起輕鬆地破解一些東西。我的建議當然可以獨立運行。首先,使用Maven運行它,然後在本地包含庫時運行它。 Maven運行的例子是:mvn.bat exec:java -Dexec.mainClass =「com.test.foo.Main」-Dexec.args =「arg1 arg2 ...」 – djangofan

+0

你在Maven聲中失去了我哈哈,對不起,對於那些應該如此簡單的事情來說太有點過分了。 –

相關問題