利用百度API制作新闻客户端

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用百度API制作新闻客户端相关的知识,希望对你有一定的参考价值。

API地址:http://apistore.baidu.com/apiworks/servicedetail/688.html
获取和解析数据暂且算是会做,可是解析出来的新闻的url,用webview加载并不适配手机屏幕,个人体验非常差,我对于html了解的比较少,有没有什么好的方法解决?可以把页面的新闻内容抓取出来,显示吗?不过我都没做过,希望有经验的人回答一下。

图方法,找到一个画面后,按下“Ctrl+Shift+E”,会出现一个通过电子邮件发送截图的界面,如下图所示,双击附件里那个图片,另存到硬盘上即可。这个图片就是当前的截图。

Google Earth的十个常用技巧应用
2004年10月27日Google宣布收购了美国的一家卫星图像公司Keyhole公司,并于2005年6月推出了Google Earth系列软件。用户们可以通过下载一个Google Earth客户端软件,就可以免费浏览全球各地的高清晰度卫星图片。

Google卫星地图的横空出世,催生了不少包括我在内的“地图玩家”,这些卫星地图发烧友们乐此不疲地收集和张贴那些有趣的地标以及自己的新发现,他们使得这个非常酷的软件迅速普及到了大众,使得普通人也可以体会到使用Google Earth浏览自己家房顶的快感。下面,我就介绍一下我自己在使用Google Earth这个软件的过程中,总结的一些常用的技巧和应用。

1、根据经纬度定位地标的方法
在Search面板的Fly To输入框中,输入一个经纬度,按回车,就可以直接“飞”到那个位置。其间采用的那种动画效果,让我们产生一种遨游地球的奇妙感觉。
2、如何在软件中截图
这里介绍一个简单的截图方法,找到一个画面后,按下“Ctrl+Shift+E”,会出现一个通过电子邮件发送截图的界面,如下图所示,双击附件里那个图片,另存到硬盘上即可。这个图片就是当前的截图。
3、如何导出地标文件
在需要引出的地标文件夹上,用鼠标右键点一下,在菜单中选择“Save As”然后输入引出文件名就行了,目前可以导出KMZ和KML两种地标文件格式。
4、KML和KMZ地标文件有什么不同
Google Earth有两种类型的地标文件,一种是KML文件,一种是KMZ文件。
KML是原先的Keyhole客户端进行读写的文件格式,是一种XML描述语言,并且是文本格式,这种格式的文件对于Google Earth程序设计来说有极大的好处,程序员可以通过简单的几行代码读取出地标文件的内部信息,并且还可以通过程序自动生成KML文件,因此,使用KML格式的地标文件非常利于Google Earth应用程序的开发。
KMZ是Google Earth默认的输出文件格式,是一个经过ZIP格式压缩过的KML文件,当我们从网站上下载KMZ文件的时候,Windows会把KMZ文件认成ZIP文件,所以另存的时候文件后缀会被改成.ZIP,因此需要手动将文件后缀改成.KMZ。
KMZ文件用ZIP工具软件打开,然后解压缩即可得到原始KML文件。当然,KMZ文件也有自己的好处,就是KMZ文件的自身可以包含图片,这样就可以不依赖引用网络上的图片。
一般情况下,双击KMZ/KML文件即可从Google Earth中打开地标文件,但是需要注意的是,KMZ/KML地标文件名不能包含中文字符,文件存放的路径也不能有中文字符,否则将无法在Google Earth中打开。
5、如何快速得到一个地标的KML格式
快速得到地标的KML文件内容的方法是,在Google Earth中右键点击一个地标,然后点右键,点Copy,然后打开记事本按Ctrl-V即可将该地标的KML内容粘贴到其中。
6、如何测量地图上两点的距离
点击菜单“Tools”-“Ruler”,弹出如下对话框。
此时,点击地球上任意两点,均可计算出两点间的距离(默认单位为英里,其它还有千米、米、厘米、英尺、码等),选择Path还可以测量曲线和折线的距离。
7、如何制作自己的地标
看多了别人制作的地标,自己是不是也觉得手痒呢?你有没有想过把自己的住宅、工作单位、自己发现的“有趣的地方”,也做成地标呢?
制作一个地标其实非常简单,看到一个好玩的地方,在Google Earth菜单中点“dd”,再选择“Placemark”,即可出现下图的界面。
其中地标的经纬度会自动填写,我们只需要填写Name(地标名称)和Description(地标说明注释说明)即可,这里可以填写中文,不过如果你想要在Google Earth官方社区上发布的话,建议还是使用英文。
信息填写完成后点OK即可生成一个地标,如果想修改一个地标,在地标上点右键-Properties,即可修改地标的说明以及位置。
地标说明是支持HTML语法的,因此我们可以应用HTML来插入图片、修改字体等,建立一个好看的地标说明。
8、如何共享发布自己的地标
Google Earth社区可以让任何人在Google Earth上分享自己的地标,我们分享自己的地标也很简单,不过需要一定的英文基础。
首先登录Google Earth社区网站 ,点“New user”建立一个论坛社区用户,然后在自己的地标上点右键,再点Share/Post,如下图,即可进入Google Earth社区的地标发布页面。这里需要注意的是,Google Earth对中文支持一点也不好,如果地标的介绍和名称使用中文字符的话,在Google Earth将显示为乱码,因此请务必使用英文字符来标明地标的名称和介绍。
地标发布后一般不会立刻显示在Google Earth的图层中,通常需要几个月的时间,你标注的地标才会出现在Google Earth的图层之中。
9、图层的应用
Google Earth在卫星地图的基础上,提供了很多数据图层,图层打开会在相应的位置呈现各种数据。具体操作是,在Google Earth左侧,找到一个叫图层(Layers)的设置,点中不同的图层,可以在Google Earth显示更多的信息,这里介绍主要的几个:
Google Earth Community图层:显示在Google Earth社区上,网友自己标记的地标。我们上面提到的分享地标就是用的这个图层。
Borders图层:显示国家、省等之间的边界信息。
National Geographic Maga图层:有大量国家地理杂志在非洲的航拍高清晰地图地标。
Transportation图层:可以显示世界各地的机场,火车站信息。
DG Coverage图层:显示不同年份卫星地图的数据,不同的年份,将显示不同的颜色,这让我们可以知道一个地方的卫星地图到底是什么时候拍摄的。
10、卫星地图的应用
Google Earth的确很酷,但是Google Earth并不只是用来玩的,我们可以在上面开发出自己的应用,将自己网站的实用功能和Google提供的卫星地图整合起来。
要想使用Google的卫星地图资源,必需面对如何调用的问题,这涉及到很复杂的程序编写。好在Google体会到了程序员的辛苦,很早就自己推出Google Maps API,全世界对Google卫星地图有兴趣的程序员都能够通过简单的API调用来开发自己的Google地图服务。
要进行Google Maps API的开发,需要先去 申请一个所谓的API Key,有了这个Key,才能使用Google Maps服务。当然,如果大网站调用Google Maps API的数据非常大的时候,需要事先联系Google的相关人员。
API的英文帮助参见这个地址: 。掌握最基本的API之后,我们就可以使用编程的方法来实现各式各样的基于Google Maps的令人目眩的服务啦。
编程时候要调用地标资源,一般都是使用KML的文件格式,KMZ的格式无法直接编程使用,需要使用UNZIP之类的接口先将文件解压缩得到KML文件,然后再调用解开的KML文件。
好了,以上就是我介绍的Google Earth的常用技巧,做为一个狂热的Google Earth的爱好者,我先前曾写了大量的关于Google Earth和Google Maps的文章,并且专门建立了一个独立的Google Earth资源收集网站,而实际过程中,我发现好的资源需要大家共同的努力才能分享,所以,如果大家英文还不错的话,就建议多登录一下Google Earth官方的论坛社区,多发布一些优秀的地标资源,让Google Earth上显示出更多中国地区的地标。
参考技术A Html 5 本身对屏幕支持适配,如果是自己写的框架,可以使用百分比进行视频。

利用百度地图API获取当前位置信息

利用百度地图API可以做很多事情,个人感觉最核心也是最基础的就是定位功能了。这里分享一个制作的JS可以实现登录网页后定位:

 1 <script type="text/javascript"> 
 2 var map; 
 3 var gpsPoint; 
 4 var baiduPoint; 
 5 var gpsAddress; 
 6 var baiduAddress; 
 7 var x;
 8 var y;
 9 function getLocation() { 
10 //根据IP获取城市 
11 var myCity = new BMap.LocalCity(); 
12 myCity.get(getCityByIP); 
13 
14 //获取GPS坐标 
15 if (navigator.geolocation) { 
16 navigator.geolocation.getCurrentPosition(showMap, handleError, { enableHighAccuracy: true, maximumAge: 1000 }); 
17 } else { 
18 alert("您的浏览器不支持使用HTML 5来获取地理位置服务"); 
19 } 
20 } 
21 
22 function showMap(value) { 
23 var longitude = value.coords.longitude; 
24 var latitude = value.coords.latitude; 
25 map = new BMap.Map("map"); 
26 x=latitude;
27 y=longitude;
28 //alert("坐标经度为:" + latitude + ", 纬度为:" + longitude ); 
29 gpsPoint = new BMap.Point(longitude, latitude); // 创建点坐标 
30 
31 
32 //根据坐标逆解析地址 
33 var geoc = new BMap.Geocoder(); 
34 geoc.getLocation(gpsPoint, getCityByCoordinate); 
35 
36 BMap.Convertor.translate(gpsPoint, 0, translateCallback); 
37 map.enableScrollWheelZoom(true);
38 } 
39 
40 translateCallback = function (point) { 
41 baiduPoint = point; 
42 map.centerAndZoom(baiduPoint, 18); 
43 var geoc = new BMap.Geocoder(); 
44 geoc.getLocation(baiduPoint, getCityByBaiduCoordinate); 
45 } 
46 
47 function getCityByCoordinate(rs) { 
48 gpsAddress = rs.addressComponents; 
49 var address = "GPS标注:" + gpsAddress.province + "," + gpsAddress.city + "," + gpsAddress.district + "," + gpsAddress.street + "," + gpsAddress.streetNumber; 
50 var marker = new BMap.Marker(gpsPoint); // 创建标注 
51 map.addOverlay(marker); // 将标注添加到地图中 
52 var labelgps = new BMap.Label(address, { offset: new BMap.Size(20, -10) }); 
53 marker.setLabel(labelgps); //添加GPS标注 
54 } 
55 
56 function getCityByBaiduCoordinate(rs) { 
57 baiduAddress = rs.addressComponents; 
58 var address = "百度标注:" + baiduAddress.province + "," + baiduAddress.city + "," + baiduAddress.district + "," + baiduAddress.street + "," + baiduAddress.streetNumber; 
59 var marker = new BMap.Marker(baiduPoint); // 创建标注 
60 map.addOverlay(marker); // 将标注添加到地图中 
61 var labelbaidu = new BMap.Label(address, { offset: new BMap.Size(20, -10) }); 
62 marker.setLabel(labelbaidu); //添加百度标注 
63 } 
64 
65 //根据IP获取城市 
66 function getCityByIP(rs) { 
67 var cityName = rs.name; 
68 alert("根据IP定位您所在的城市为:" + cityName); 
69 } 
70 
71 function handleError(value) { 
72 switch (value.code) { 
73 case 1: 
74 alert("位置服务被拒绝"); 
75 break; 
76 case 2: 
77 alert("暂时获取不到位置信息"); 
78 break; 
79 case 3: 
80 alert("获取信息超时"); 
81 break; 
82 case 4: 
83 alert("未知错误"); 
84 break; 
85 } 
86 } 
87 
88 function init() { 
89 getLocation(); 
90 } 
91 
92 window.onload = init; 
93 
94 </script>

完成定位功能后可以添加相关代码编辑地图控件 覆盖物 信息窗口等等各种功能。

附上百度地图连接:http://lbsyun.baidu.com/

 

以上是关于利用百度API制作新闻客户端的主要内容,如果未能解决你的问题,请参考以下文章

新闻客户端应用项目源码

急!android编程 请问像网易新闻安卓客户端的界面是怎么做的啊?用了哪些控件?

用百度大脑技术让AI做回新闻主播!

极限安全新闻播报(03.24)

使用RxJava+Retrofit+MVP+Glide开发一个简单的新闻客户端

android新闻客户端是怎么得到新闻的?