2014-07-08 83 views
0

我使用Google地圖並訪問了一個位置並將其保存爲html頁面,因此我可以在未來使用縮放功能查看該位置。是否有可能以.pdf格式保存該位置(地圖),而不是具有縮放功能的html格式。 如果是,如果沒有,那麼請回答原因。是否可以將離線地圖保存爲pdf文件

回答

1

如果您打印該html文件,打印對話框將彈出默認打印機。點擊打印機下方的「更改」,然後選擇「另存爲PDF」。您可以在Adobe Reader中縮放PDF。

或(長路)

啓動InDesign和創建一個新A4橫向文件。現在,在鍵盤上按F(框架工具)並拖動一個您希望用於地圖的大小的框架。

轉到工作區設置(InDesign的右上角)並將其更改爲PDF交互式。轉到窗口→交互→按鈕。在InDesign中,您可以非常輕鬆地創建按鈕。創建任何對象,然後右鍵單擊並選擇交互 - 轉換爲按鈕。

要將Google地圖導入Flash,您需要下載Google Map Component - map_1_18.swc。

在Windows 7中導航到C:Program Files(x86)AdobeAdobe Flash CS6CommonConfigurationComponents。然後在那裏創建一個新文件夾並將其命名爲Google。將.swc文件存儲在那裏,然後轉到此頁面並按照說明獲取API密鑰並保存。您的Flash現在已設置爲支持Google地圖API。

按CTRL + F7打開「組件」面板,或者單擊菜單中的窗口→組件。您應該在那裏看到Google地圖庫。將其拖放到「庫」面板中。

轉到時間軸中的圖層面板並將其稱爲例如GMAP。打開操作面板(或按F9)Windows→操作。現在把有下面的代碼導入地圖:

import com.google.maps.LatLng; 
import com.google.maps.Map; 
import com.google.maps.Map3D; 
import com.google.maps.MapEvent; 
import com.google.maps.MapType; 
import com.google.maps.View; 
import com.google.maps.geom.Attitude; 

//創建地圖可變

var map:Map3D; 


/Creating map 
create_map(); 
function create_map() 
{ 
map = new Map3D(); 
map.key = "your api key"; 
map.setSize(new Point(stage.stageWidth, stage.stageHeight)); 
map.addEventListener(MapEvent.MAP_READY, onMapReady); 
this.addChild(map); 
} 
function onMapReady(event:MapEvent):void 
{ 
map.setCenter(new LatLng(48.207401,16.372805), 13); 
map.setAttitude(new Attitude(20,30,0)); 
map.viewMode = View.VIEWMODE_PERSPECTIVE; 
} 

爲了創建標記,你需要再次把一些動作腳本。轉到ActionScript面板並複製以下代碼。如有必要,更改類以匹配你的。

var c:Marker = new Marker(new LatLng(-33.925272,18.423557), 
new MarkerOptions({icon:new capeTown()})); 
map.addOverlay(c); 
var p:Marker = new Marker(new LatLng(50.075651,14.431229), 
new MarkerOptions({icon:new prague()})); 
map.addOverlay(p); 
var v:Marker = new Marker(new LatLng(48.206371,16.375122), 
new MarkerOptions({icon:new vienna()})); 
map.addOverlay(v);} 

如果您想要使用acrobat按鈕控制fly.to動畫。由於我們從Javascript調用ActionScript,因此我們使用ExternalInterface.addCallback函數,該函數將構建SWF和Acrobat Javascript之間的橋樑。創建一個新的動作層,並在那裏放置類似的東西。它應該有相同的標記座標:

function pr(e:MouseEvent = null):void 
{ 
map.flyTo(new LatLng(50.075651,14.431229),12,new Attitude(0,0,4),5); 
} 
ExternalInterface.addCallback("pr",pr); 
function vn(e:MouseEvent = null):void 
{ 
map.flyTo(new LatLng(48.206371,16.375122),9,new Attitude(0,30,3),5); 
} 
ExternalInterface.addCallback("vn",vn) 
function cp(e:MouseEvent = null):void 
{ 
map.flyTo(new LatLng(-33.925272,18.423557),3,new Attitude(0,30,-10),3); 
} 
ExternalInterface.addCallback("cp",cp) 

使用map.flyTo函數,您可以控制以下參數:LatLng,Zoom,Attitude,Time。

現在再次打開您的InDesign文件,我們已經準備好了。選擇將用作地圖佔位符的框架。用佔位符選擇按CTRL + D(文件 - 導入)放置您的SWF地圖。打開媒體面板並檢查頁面加載上的播放。選擇None作爲Poster選項。現在您已準備好將其導出爲交互式PDF。轉到文件 - 導出或按CTRL + E,然後選擇Adobe PDF Interactive。

在Acrobat中打開文件。您有交互式Acrobat按鈕和您的嵌入式Google地圖。現在按鈕什麼也不做,除了翻轉效果,如果你已經創建了任何。在交互標籤工具中選擇選擇對象工具,然後雙擊其中一個按鈕。在到達的窗口中轉到操作並從選擇操作下拉菜單中選擇運行Javascript,然後按添加。在新打開的窗戶再次把下面的代碼:

getAnnotsRichMedia(this.pageNum)[0].callAS(「pr」); 

按確定,關閉

Reference

+1

在這種情況下,如果我嘗試縮放地圖,它不會像HTML文件那樣工作。我應該移動到.swf文件而不是.pdf? – RVB

+0

訪問此鏈接http://www.dsclsugar.com/plot-by-id/frm_map.aspx?id1=%272887553%27&id2=%27%27&id3=%27%27&id4=%27%27&id5=%27%27&id6 =%27%27&lat = 27.678206&lng = 80.201646 您會在那裏看到一個黃色標記。在這一點上,我正在繪製一個多邊形保存爲html和pdf兩種格式,然後檢查縮放功能。 – RVB

1

你可能想看看靜態地圖API https://developers.google.com/maps/documentation/staticmaps/。它允許您請求640x640靜態地圖,您可以通過更改參數來相應地調整縮放比例。您可以使用座標或地點名稱,這些地點將根據您的請求進行地理編碼。

這裏有不同的縮放級別和地圖類型的幾個例子:

640x640,放大14,地形地圖: http://maps.googleapis.com/maps/api/staticmap?center=Eiffel+Tower&zoom=14&size=640x640

640x640,放大18,衛星:http://maps.googleapis.com/maps/api/staticmap?center=Eiffel+Tower&zoom=18&size=640x640&maptype=satellite

要知道,雖然(b)的Terms of Use,你:

  • (b)沒有直接營銷。您不得打印超過5,000份銷售抵押品 材料,其中包含用於 商業銷售線索代(「Direct Marketing」)的內容屏幕截圖或將 內容作爲印刷品的核心部分(如印刷地圖或 指南書),你需要付費重新分配。如果您想要執行上述任一操作,您必須聯繫 Google Maps API for Business銷售團隊以獲得直接許可。
相關問題