2013-05-01 34 views
3

我正在使用單張API http://leafletjs.com/構建地圖繪製應用程序。無法獲得phantomjs 1.9以將單張SVG矢量圖呈現爲png

我想用phantomjs來生成地圖的靜態截圖。

舉個例子,爲了顯示此頁:使用

phantomjs例子

http://leafletjs.com/examples/geojson-example.html

/rasterize.js http://leafletjs.com/examples/geojson-example.html test.png

結果遺漏了SVG圖像中覆蓋。我已經在Windows 7和Fedora Core 15下使用預編譯的二進制文件嘗試過了。另外,我在Fedora Core 15下從源代碼編譯了它。在兩個平臺上構建的所有內容都產生了相同的行爲。

有沒有人使用phantomjs成功地將單張地圖映射到PNG?

謝謝。

+1

您是否嘗試將第29行中的[rasterize.js](https://github.com/ariya/phantomjs/blob/master/examples/rasterize.js)腳本中的超時從200增加到某個更高的值? – flup 2013-05-02 19:14:04

+0

是的,我想過超時問題在一次測試中,我實際上修改了rasterize.js以包含waitFor示例,並導致它等待一個標誌,我只在繪製完所有矢量形狀後才設置該標誌。我用console.log消息來驗證它。一切都無濟於事。 (雖然好思考。) – 2013-05-02 22:34:12

回答

1

我剛剛遇到同樣的問題,增加超時(至少5000)並未使SVG疊加顯示在PDF中。

這也可能是這個問題:https://github.com/ariya/phantomjs/issues/11171

切換到單張主分支解決了這一問題對我來說。

+0

優秀。我會嘗試一下。 (我搜索了整個錯誤列表,但錯過了那個,謝謝你的指針!) – 2013-05-02 22:35:41

+0

從今天起,使用master分支並不能解決問題。有趣的是,在我的測試用例中,穩定版本至少呈現Marker圖層(但不是多段線),但主分支引起phantomjs甚至不呈現標記。然而,它確實證明了所使用的Leaflet版本對phantomjs有影響。 – 2013-05-03 12:50:01

+0

我的地圖中沒有標記,但這裏是我的工作內容,Leaflet master和PhantomJS 1.9是從源代碼構建而成的:3個包含多邊形的圖層組,其中一些具有透明圖層填充,另一些圖層不包含圖層圖層。 – 2013-05-10 13:07:19