Google Maps 学习笔记(二)地图天气预报服务 2014.06.04
地图天气预报服务:一,获取天气预报信息;二,解析天气预报信息;三,在地图上加载天气预报信息;
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的更多相关文章
- Google Maps 学习笔记(三)
1.GPolyline折线对象和GPolygon多边形对象 html标签中必须包含v="urn:schemas-microsoft--com:vml"的命名空间 <html ...
- Google Maps 学习笔记(一)2014.06.04
1.<body onload="加载地图的函数" onunload="GUnload()"> 2.new GMap2(container,opts) ...
- 微服务学习笔记二:Eureka服务注册发现
Eureka服务注册发现 服务发现:云端负载均衡,一个基于 REST 的服务,用于定位服务,以实现云端的负载均衡和中间层服务器的故障转移. 1. Service Discovery: Eureka S ...
- Google Analytics 学习笔记二 —— GA部署
一.直接部署 直接复制GA跟踪代码 放到所有页面 跟踪代码放到 "head"前面 二.GTM部署方法一 三.GTM部署方法二 Tacking ID 四.测试.参数配置与调优
- Netty学习笔记(二) 实现服务端和客户端
在Netty学习笔记(一) 实现DISCARD服务中,我们使用Netty和Python实现了简单的丢弃DISCARD服务,这篇,我们使用Netty实现服务端和客户端交互的需求. 前置工作 开发环境 J ...
- AJax 学习笔记二(onreadystatechange的作用)
AJax 学习笔记二(onreadystatechange的作用) 当发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态XMLHttpRequest对象提供了on ...
- JMX学习笔记(二)-Notification
Notification通知,也可理解为消息,有通知,必然有发送通知的广播,JMX这里采用了一种订阅的方式,类似于观察者模式,注册一个观察者到广播里,当有通知时,广播通过调用观察者,逐一通知. 这里写 ...
- Django学习笔记二
Django学习笔记二 模型类,字段,选项,查询,关联,聚合函数,管理器, 一 字段属性和选项 1.1 模型类属性命名限制 1)不能是python的保留关键字. 2)不允许使用连续的下划线,这是由dj ...
- python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法
python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法window安装redis,下载Redis的压缩包https://git ...
随机推荐
- SQL Server MySQL 中的 in 与 null
例子: create table t(x int,y int); insert into t(x,y) values(1,1),(2,2),(null,null); 查询一: select x,y f ...
- 转: ES6异步编程:Thunk函数的含义与用法
转: ES6异步编程:Thunk函数的含义与用法 参数的求值策略 Thunk函数早在上个世纪60年代就诞生了. 那时,编程语言刚刚起步,计算机学家还在研究,编译器怎么写比较好.一个争论的焦点是&quo ...
- Adobe Acrobat 9 Pro Extended 9.4简体中文完整免激活注册版
Acrobat9 Pro最近升级比较频繁,如今已经升级到了Acrobat 9 Pro Extended 9.4版.亿品元素上曾经分享过Acrobat Pro Extended简体中文版 9.3.3 优 ...
- git操作标签
操作标签 如果标签打错了,也可以删除: $ git tag -d v0.1 Deleted tag 'v0.1' (was e078af9) 因为创建的标签都只存储在本地,不会自动推送到远程.所以,打 ...
- 面向对象程序设计-C++_课时18内联函数
使用inline说明的函数称内联函数. 在C++中,除具有循环语句.switch语句的函数不能说明为内联函数外,其他函数都可以说明为内联函数. #include <iostream> us ...
- 调用父类Controller错误
在写一个控制器的时候,要特别注意本类继承的父类.不要继承错了.如图: ,这样就会一直是显示父类的控制器,而不是显示本类的控制器视图. 应该改为: 这些都是平时遇到的一些小问题,留着提醒自己.
- DataReader转泛型
实体类的字段类型要和数据库一致,不然可能会出现错误. /// <summary> /// DataReader转泛型 /// </summary> /// <typepa ...
- 【译】html5游戏入门
[译]html5游戏入门 原文链接 简介 如果你想用canvas做个游戏,那么来对地方了. 但是但是你至少知道javascript怎么拼写(╯‵□′)╯︵┻━┻ 既然没问题,那先来玩一下或者下载 创建 ...
- ASP.Net中使用Report Service
昨天研究以下Report Service,发现SQL Service自带的报表服务器也非常强大, 一,报表在不同的应用中表现形式 参考:http://www.cnitblog.com/yide/arc ...
- IO库 8.5
题目:重写8.4中的函数,将每一个单词作为一个独立的元素进行存储. #include <iostream> #include <fstream> #include <st ...