是否可以在pdf文件中保存离线地图

时间:2014-07-08 11:23:53

标签: google-maps pdf

我使用谷歌地图并访问了一个位置并将其保存为html页面,我可以通过缩放功能查看该位置。是否可以以.pdf格式保存该位置(地图)而不是具有缩放功能的html格式。 如果是,如果没有那么请回答原因。

2 个答案:

答案 0 :(得分:1)

如果您要打印该html文件,则会弹出打印对话框,其中包含默认打印机。点击打印机下的“更改”,然后选择“另存为PDF”。你可以在adobe reader中缩放pdf。

或(长途)

启动InDesign并创建一个新的A4横向文档。现在按键盘上的F(框架工具)并拖动一个具有您希望拥有的地图的框架。

转到工作区设置(InDesign的右上角)并将其更改为PDF的交互式。转到窗口→交互式→按钮。在InDesign中,您可以非常轻松地创建按钮。创建任何对象,然后右键单击并选择“交互” - “转换为”按钮。

要将Google地图导入Flash,您需要下载Google地图组件 - map_1_18.swc。

在Windows 7中,导航到C:Program Files(x86)AdobeAdobe Flash CS6CommonConfigurationComponents。然后在那里创建一个新文件夹并将其命名为Google。将.swc文件存储在那里,然后转到此页面并按照说明获取API密钥并保存。您的Flash现已设置为支持Google maps 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。转到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地图。打开媒体面板,然后选中“在页面上加载播放”。选择无海报选项。现在您可以将其导出为交互式PDF。转到文件 - 导出或CTRL + E,然后选择Adobe PDF Interactive。

在Acrobat中打开文件。您有交互式Acrobat按钮和嵌入式Google地图。这些按钮现在不执行任何操作,但如果您创建了任何按钮,则除了翻转效果。在“交互”选项卡工具中,选择“选择对象工具”,然后双击其中一个按钮。在到达的窗口中转到“操作”,然后从“选择操作”下拉菜单中选择“运行Javascript”,然后按“添加”。在一个再次打开的新窗口中输入以下代码:

getAnnotsRichMedia(this.pageNum)[0].callAS(“pr”);

按确定并关闭

Reference

答案 1 :(得分:1)

您可能需要查看Static Maps 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

请注意,根据Terms of Use的10.1.2。(b),您:

  • (b)没有直接营销。您不得打印超过5,000份销售抵押品 包含内容屏幕截图的材料 商业销售潜在客户(" Direct Marketing")或合并 内容作为印刷品的核心部分(如印刷地图或 指导书籍)您需要重新分配费用。你必须联系 Google Maps API for Business销售团队如果获得直接许可 你希望做上述任何一种。