Google Maps 学习笔记(二)地图天气预报服务 2014.06.04

时间:2021-08-09 15:04:45

地图天气预报服务:一,获取天气预报信息;二,解析天气预报信息;三,在地图上加载天气预报信息;

Yahoo!提供的天气预报服务采用流行的RSS输出结果,接口地址如下:

http://weather.yahooapis.com/forecstrss?p={location}&u={unit}

location:地点ID或美国邮编 // 地点ID是形如"USCA1116"的字符串

地区ID可以到http://weather.yahoo.com/进行查询

unit:天气信息的显示单位。  c(公制)和f(英制)

详细RSS文档内容:https://developer.yahoo.com/weather/

RSS文档是一种XML文档。

/*

AJAX跨域获取数据安全行问题,客户端的Javascript无法直接加在此RSS文档,必须在服务器中转一次。

同时,文档中节点含有命名空间,xmlnode.getElementsByTagNameNS() // ie不支持?

*/

GoogleAJAXFeedAPI  主页:http://code.google.com/apis/ajaxfeeds

GoogleAJAXFeedAPI 支持多种Feed格式

GoogleAJAXFeedAPI 中支持的XML的命名空间,其全局方法为 google.feeds.getElementByTagNameNS()

google.feeds.getElementByTagNameNS(node,ns,localName)//node:需要查找的根节点      ns:命名空间的 URI      localName:本地名称

返回值为NodeList类型,为一组符合条件的XML节点。

Feed()对象 位于 google.feeds 命名空间,三个方法:load()、setNumEntries()和setResultFormat()

(1)因为加载Feed属于异步调用,所以需要Feed.load()加入回调函数对返回数据进行处理  Feed.load(callbackFunction)

调用时可以传递result参数,result参数的类型由Feed.setResultFormat()决定

(2)Feed.setNumEntries(num)//用于设定返回的Feed中所含的项目数   num为加载Feed后, result参数中包含的项目数

(3)Feed.setResultFormat(format)   用于设定返回的数据格式

google.feeds.Feed.JSON_FORMAT、google.feeds.Feed.XML_FORMAT、google.feeds.Feed.MIXED_FORMAT ( 混合格式的数据 )

完成处理Feed函数后,google.setOnLoadCallback() 函数设定为回调函数了。

创建YWeather类(方便重用):

//Url模板

var feedUrlTemplate = "http:\/\/image.weather.yahoo.com\/web\/common\/wxicons\/31\/{code}.gif";

//天气RSS路径的模板

var feedUrlTemplate = "http:\/\/weather.yahoo.com\/forecastrss?p={id}&u={unit}";

function YWeather(){};

YWeather.prototype.loadWeather = function(id,unit){

  if(!id) return;//如果id为空

  this.id = id;

  this.unit = unit?unit:"c";

  var url = feedUrlTemplate.replace("{id}",this.id).replace("{unit}",this.unit);//生成真实的RSS的URL

  //加载 RSS并设定其回调函数为this.process,即YWeather.process

  this.feed = new google.feeds.Feed(url);

  this.feed.setResultFormat(google.feeds.Feed.XML_FORMAT);

  this.feed.load(this.process);

  

}

Google Maps 学习笔记(二)地图天气预报服务 2014.06.04的更多相关文章

  1. Google Maps 学习笔记(三)

    1.GPolyline折线对象和GPolygon多边形对象 html标签中必须包含v="urn:schemas-microsoft--com:vml"的命名空间 <html ...

  2. Google Maps 学习笔记(一)2014&period;06&period;04

    1.<body onload="加载地图的函数" onunload="GUnload()"> 2.new GMap2(container,opts) ...

  3. 微服务学习笔记二:Eureka服务注册发现

    Eureka服务注册发现 服务发现:云端负载均衡,一个基于 REST 的服务,用于定位服务,以实现云端的负载均衡和中间层服务器的故障转移. 1. Service Discovery: Eureka S ...

  4. Google Analytics 学习笔记二 —— GA部署

    一.直接部署 直接复制GA跟踪代码 放到所有页面 跟踪代码放到 "head"前面 二.GTM部署方法一 三.GTM部署方法二 Tacking ID 四.测试.参数配置与调优

  5. Netty学习笔记&lpar;二&rpar; 实现服务端和客户端

    在Netty学习笔记(一) 实现DISCARD服务中,我们使用Netty和Python实现了简单的丢弃DISCARD服务,这篇,我们使用Netty实现服务端和客户端交互的需求. 前置工作 开发环境 J ...

  6. AJax 学习笔记二&lpar;onreadystatechange的作用&rpar;

    AJax 学习笔记二(onreadystatechange的作用) 当发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态XMLHttpRequest对象提供了on ...

  7. JMX学习笔记&lpar;二&rpar;-Notification

    Notification通知,也可理解为消息,有通知,必然有发送通知的广播,JMX这里采用了一种订阅的方式,类似于观察者模式,注册一个观察者到广播里,当有通知时,广播通过调用观察者,逐一通知. 这里写 ...

  8. Django学习笔记二

    Django学习笔记二 模型类,字段,选项,查询,关联,聚合函数,管理器, 一 字段属性和选项 1.1 模型类属性命名限制 1)不能是python的保留关键字. 2)不允许使用连续的下划线,这是由dj ...

  9. python3&period;4学习笔记&lpar;二十四&rpar; Python pycharm window安装redis MySQL-python相关方法

    python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法window安装redis,下载Redis的压缩包https://git ...

随机推荐

  1. js 的 protype 小总结

    这里是对该文的总结: 1.Javascript中对象的prototype属性的解释是:返回对象类型原型的引用.   2.原型法的主要思想是,现在有1个类A,我想要创建一个类B,这个类是以A为原型的,并 ...

  2. Kakfa重连测试

    在Kafak已启动的情况下: 发送端首次连接大概耗时400毫秒.后续消息发送都在1毫秒以下. 接收端首次连接大概耗时400-7000毫秒.后续消息接收都在1毫秒以下.(具体时间与topic中存留的消息 ...

  3. HTML静态网页导航制作

    普通导航栏制作 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www ...

  4. 如何判断Intent有没有对应的Activity去处理?

    如何判断Intent有没有对应的Activity去处理?至少有以下两种方法,最近使用过,随笔记下来,以供查阅. 第一种, 如下: public boolean isIntentResolvable(I ...

  5. 为效率而生&colon;开源Mac版Google Authenticator认证客户端GoldenPassport

    最近运维同学为了提高安全性,用Google Authenticator对服务器加了双重认证,此后登录服务器需要先输入动态密码,在输入服务器密码.Google Authenticator相当于软toke ...

  6. C&plus;&plus;11 新知识点

    翻了下新版的C++ Primer,新的C++ 11真是变化很大,新增了很多语法特性.虽然已经很久没在写C++了,但一直对这门经典语言很感兴趣的,大致看了看前几章基础部分,总结下新特性备个忘吧.估计也很 ...

  7. DevExpress v18&period;2新版亮点——Reporting篇(二)

    行业领先的.NET界面控件——DevExpress v18.2日前正式发布,本站将以连载的形式为大家介绍新版本新功能.本文将介绍了DevExpress Reporting v18.2 的新功能,新版3 ...

  8. &num;define LT&lpar;a&comma;b&rpar; &lpar;&lpar;a&rpar;&lt&semi;&lpar;b&rpar;&rpar;

    就是带参数的宏定义 LT是函数名 (a,b )是参数表((a)<(b))是表达式返回一个布尔类型的值

  9. Java并发编程-Executor框架集

    Executor框架集对线程调度进行了封装,将任务提交和任务执行解耦. 它提供了线程生命周期调度的所有方法,大大简化了线程调度和同步的门槛. Executor框架集的核心类图如下: 从上往下,可以很清 ...

  10. C&num; 进程优先级和线程优先级的方法

    C# 设置进程优先级的方法 this.process1= Process.GetCurrentProcess(); process1.PriorityClass = ProcessPriorityCl ...