口袋数码论坛's Archiver

amoxcar 发表于 2005-10-17 11:22

从百度获取超级大地图的方法

我们知道百度提供地图服务,但它的地图显示很吝啬,只有680×450象素。现在偶要向大家公布的是突破640×480象素的方法,用这种方法你可以得到20000×20000甚至更大的高精度地图。
我们以杭州地图为例,等百度显示杭州地图之后,从IE菜单中选择“查看-源文件”。
请仔细看源文件,其中有一句类似以下的指令:
<iframe frameborder='0' id="mapid" name='mapletframe'  src='[color=Red]http://baidu.mapbar.com/baidu/show.jsp?width=680&height=450&cityCode=0571[/color]' width='680' height='450' scrolling='no'></iframe>

我们把上面红色的文字部分复制下来,新开一个IE窗口,再把刚才复制下来的文字粘贴上去,回车。是不是出现了杭州地图的独立窗口?
我们不妨分析一下上面URL的含义,我想您肯定能理解“width=680&height=450”的含义。我们试着把这两个数据改大一点,比如4000×4000,然后回车。
是不是得到了4000×4000的大图?我们还可以在地图左上脚调整图片分辨率……

现在我们可以从百度得到任意大小的地图了。我想你肯定着急把这些地图保存下来,不过这事没那么容易。具体如何操作,且听下回分解。

第二回
不知道你有没有留意到,百度显示的大地图是由很多小图片拼起来的。所以你不可能象常规那样,点击鼠标右键选择保存图片。
这里就要用到“旁门左道”的方法了。
在我的电脑里,安装了产生PDF文件的虚拟打印机。
在PDF虚拟打印机中自定义一张很大的纸,用IE的打印命令,打印出一个PDF文件。假如百度生成的地图是4000×4000的,你不妨把纸张大小设成4000×4000象素,打印精度72DPI,这样得到的PDF刚好吻合百度地图大小。
然后用PHOTOSHOP,导入刚才产生的PDF文件,于是我们得到了一张完整的大地图。把这个地图另存为PNG或者TIF、BMP等格式,就可以放到OZI中了。

我已经用这个方法生成了好几张地图,看起来不错,现在还没时间校准。

PS,当百度生成大图时,对网络带宽和计算机性能要求比较高。我用P4 2.8/1G的机器生成10000×10000的地图不到30妙,而用另一台P3 866/128M的机器等了半天IE死机

来看看这张地图,就是用上面方法做出来的。
[img]http://www.jkcphoto.com/files/50001.jpg[/img]
因为网络限制,图片缩小了。

[[i] 本帖最后由 amoxcar 于 2005-10-19 06:24 PM 编辑 [/i]]

hailiminer 发表于 2005-10-17 11:35

..............听你下回吧..

charles.c 发表于 2005-10-17 14:22

嘿,有点儿意思!继续呀!

ddhytz 发表于 2005-10-17 15:33

看来是在等加分呢。挺有意思。

tianwenzhu 发表于 2005-10-17 16:10

说出来如果可行,可以考虑。

ddhytz 发表于 2005-10-17 16:26

楼主加油,我们支持你。

amoxcar 发表于 2005-10-17 20:45

已经把全过程加上去了。能产生PDF的虚拟打印机驱动很多,到华军上去找找,有好几十个。我用的是CUTEPDF。

yjhymy 发表于 2005-10-17 20:46

哈哈,再用地图一把抓就可抓图了

沧浪翁 发表于 2005-10-17 21:46

请教楼主,查看源文件里找不到citycode?

amoxcar 发表于 2005-10-17 22:16

[quote]原帖由 [i]沧浪翁[/i] 于 2005-10-17 09:46 PM 发表
请教楼主,查看源文件里找不到citycode? [/quote]
你再仔细找找看,应该有的。
还有一种可能是百度的地图有多种格式,我没法也不可能把各个地方全部试验一遍

ddhytz 发表于 2005-10-18 16:36

不错!我倒是想到用PDF,但没有想到要自定义的纸的大小。剩下的就是校图,这工作量可不小。

应该给加分吧?!

[[i] 本帖最后由 ddhytz 于 2005-10-18 04:41 PM 编辑 [/i]]

lmoon_tong 发表于 2005-10-18 17:15

已经试验过,绝对可行,就是对机器要求比较高:)

沧浪翁 发表于 2005-10-18 17:27

请教楼主,我查看的源文件里就是没有citycode,请帮我看看问题出在哪里,多谢了

[[i] 本帖最后由 沧浪翁 于 2005-10-18 06:45 PM 编辑 [/i]]

amoxcar 发表于 2005-10-18 18:25

老兄,你还没打开地图呢。
点窗口右边任意一个地名,或者用上面搜索功能输入地名,等下一个页面出来就有了。

ddhytz 发表于 2005-10-18 18:30

我发觉在Mozillar Firefox里,操作很简单。 我是这样来得到大地图的。
1。进入百度 [url]http://baidu.mapbar.com/include.jsp[/url] 点一下你要的城市,比如上海,显示上海地图。
2。将鼠标移入地图, 右点,显示菜单,选 This Frame -> Open Frame in New Window 或 Open Fram in New Tab,这时在地止栏就会显示地图的大小和城市代码。上海是021 (是不是用的电话市区代码?)
3。调节地图的大小。然后就可以输出到PDF文件。

在IE里,选好地图,然后用 鼠标右点地图,再选特性(Properties),这时跳出一个小窗口,里面有URL address,包括citycode.

沧浪翁 发表于 2005-10-18 18:48

谢谢楼上两位,知道问题的原因了:我直接点击地图里的北京,所以没有citycode,点击了边上的城市名“北京”,查看出来了citycode,非常好用,再次感谢。

tianwenzhu 发表于 2005-10-19 10:35

试了,好办法,好文章,加入精华。
楼主还有其它的获得地图资源的好方法吗?

[[i] 本帖最后由 tianwenzhu 于 2005-10-19 10:49 AM 编辑 [/i]]

chenwintek 发表于 2005-10-20 12:12

一定要顶..................

lynote 发表于 2005-10-20 19:48

好办法!支持一下!

tianwenzhu 发表于 2005-10-21 19:38

哈哈!楼主,给你的文章标题设置了绿色高亮显示,以引起fans们的注意。绿色不知是否是你喜欢的颜色?

页: [1] 2 3

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.