SAS中文论坛

标题: 用SAS获取指定地方地图2 [打印本页]

作者: slash    时间: 2014-3-30 14:12
标题: 用SAS获取指定地方地图2
感谢坛友 @soporaeternus 的意见,通过百度地图的API接口可以实现中文来获取地图,具体代码如下:

  1. %macro sas_getMap(address,img_filename,zoom=11,width=800,height=600);
  2. data _null_;
  3.   length url $ 2048;
  4.   url = catt( 'http://api.map.baidu.com/staticimage?width=', &width, '&height=', &height, '&markers=', "&address",
  5.     '&zoom=',&zoom);
  6.   url = transtrn(trim(url), ' ', '%20');
  7.   call symputx('REQUEST_URL', url);
  8. run;
  9. filename img_fref &img_filename;
  10. proc http out = img_fref url = "%superq(REQUEST_URL)" method = "GET";
  11. run;
  12. %mend;
复制代码

程序参数说明:
1. 必输参数:地址;中文地址;
2. 必输参数:图片输出路径;
3. 可选参数:放大级别,默认值为11,范围3-18;
4. 可选参数:图片宽度,默认值为800,最大支持1024;
5. 可选参数:图片高度,默认值为600,最大支持1024;


测试1:

  1. %sas_getMap(广州大学城,"C:\temp\tianhe.png",zoom=18)
复制代码

[attach]50[/attach]

测试2:
  1. %sas_getMap(北京天安门,"C:\temp\beijing.png",zoom=18)
复制代码

[attach]51[/attach]

测试3:
  1. %sas_getMap(广东工业大学龙洞校区,"C:\temp\tower.png",zoom=18,width=1024,height=768)
复制代码

[attach]52[/attach]

更多详细的设置请参见百度地图API的说明:http://developer.baidu.com/map/static-1.htm




最后再给大家分享一个关于PROC HTTP的另外一个功能,就是下载文件:
以百度网盘中的文件为例,通过点击下载得到它的下载路径,就可以下载了,具体如下所示:

  1. filename _bcout "C:\temp\test.mp3";
  2. proc http method="get"
  3. url='http://bj.baidupcs.com/file/67617060138192bc3a210d3eadf6da8b?xcode=b270263d72569130d63494ff60034e86aa7c5d24b961ac16&fid=2031017424-250528-2939263134&time=1396153071&sign=FDTAXER-DCb740ccc5511e5e8fedcff06b081203-nX0P3vyGEWXi3w7Csxkv7eMNGpQ%3D&to=bb&fm=N,B,U,nc&newver=1&expires=1396153671&rt=sh&r=164409818&logid=1087617377&sh=1&vuk=2031017424&fn=The%20Rock%208.mp3'
  4. out=_bcout;
  5. run;
复制代码


下载后文件如下所示:
[attach]53[/attach]



作者: wind19    时间: 2014-3-30 16:30
谢谢,学习了!
作者: webgu    时间: 2014-3-30 18:25
@soporaeternus  可是元老级人物。
作者: slash    时间: 2014-3-31 23:22
webgu 发表于 2014-3-30 18:25
@soporaeternus  可是元老级人物。

soga! 膜拜!
作者: 3554699    时间: 2014-4-2 09:19
很不错的功能!谢谢分享!
作者: 3554699    时间: 2014-4-2 11:36
百度地图的高级模式参数该如何调用?
作者: slash    时间: 2014-4-2 13:01
3554699 发表于 2014-4-2 11:36
百度地图的高级模式参数该如何调用?

将那些高级模式参数加进url就可以了!




欢迎光临 SAS中文论坛 (https://mysas.net/forum/) Powered by Discuz! X3.2