﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-The NoteBook of EricKong-随笔分类-微信开发</title><link>http://www.blogjava.net/jjshcc/category/54542.html</link><description>桑巴葡语翻译工作室是广州市最专业葡萄牙语翻译机构-www.puyufanyi.com-欢迎寻找Java,As400,Mainframe的猎头eric_cc#qq.ccom(把#换成@)</description><language>zh-cn</language><lastBuildDate>Mon, 26 Jan 2015 03:44:31 GMT</lastBuildDate><pubDate>Mon, 26 Jan 2015 03:44:31 GMT</pubDate><ttl>60</ttl><item><title> JSONP一种使用元素获取数据的方法</title><link>http://www.blogjava.net/jjshcc/archive/2015/01/23/422401.html</link><dc:creator>Eric_jiang</dc:creator><author>Eric_jiang</author><pubDate>Fri, 23 Jan 2015 12:50:00 GMT</pubDate><guid>http://www.blogjava.net/jjshcc/archive/2015/01/23/422401.html</guid><wfw:comment>http://www.blogjava.net/jjshcc/comments/422401.html</wfw:comment><comments>http://www.blogjava.net/jjshcc/archive/2015/01/23/422401.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/jjshcc/comments/commentRss/422401.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jjshcc/services/trackbacks/422401.html</trackback:ping><description><![CDATA[<div>现在很多厂商比如，百度、谷歌在调用api接口时早已开始使用json数据。</div><div></div><div>但是古老的XMLHttpRequest设计时，为了安全性，不能使用跨站数据(就是调用其它的网站的数据)</div><div></div><div></div><div>如果需要访问由远程服务器上一个web服务托管的json数据，则要使用JSONP。</div><div></div><div></div><div>假设，我要进行百度地图坐标转换，这是文档http://developer.baidu.com/map/changeposition.htm</div><div></div><div></div><div>运行示例 http://api.map.baidu.com/geoconv/v1/?coords=114.21892734521,29.575429778924;114.21892734521,29.575429778924&amp;from=1&amp;to=1</div><div></div><div></div><div>浏览器打开得到返回值 (注意当前返回错误，本文只是随便找个例子用来讲解)</div><div></div><div>{"status":22,"message":"param error:to illegal, not support such coord type","result":[]}</div><div></div><div>那么我们该如何来让我们的页面程序获取这个值呢？</div><div></div><div></div><div>在示例链接中加入</div><div></div><div>callback=GetValue</div><div></div><div>然后新建html页面</div><div></div><div>&lt;!DOCTYPE html&gt;</div><div>&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;</div><div>&lt;head&gt;</div><div>&lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8"/&gt;</div><div>&nbsp; &nbsp; &lt;title&gt;&lt;/title&gt;</div><div>&nbsp; &nbsp; &lt;script&gt;</div><div></div><div></div><div>&nbsp; &nbsp; &nbsp; &nbsp; var getVal;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; function GetValue(Value)</div><div>&nbsp; &nbsp; &nbsp; &nbsp; {</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; getVal = Value;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; alert("ok");</div><div>&nbsp; &nbsp; &nbsp; &nbsp; }</div><div>&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</div><div>&nbsp; &nbsp; &lt;/script&gt;</div><div>&lt;/head&gt;</div><div>&lt;body&gt;</div><div>&nbsp; &nbsp; &lt;script src="http://api.map.baidu.com/geoconv/v1/?coords=114.21892734521,29.575429778924;114.21892734521,29.575429778924&amp;from=1&amp;to=1&amp;callback=GetValue"&gt;</div><div>&nbsp; &nbsp; &lt;/script&gt;</div><div>&lt;/body&gt;</div><div>&lt;/html&gt;</div><div></div><div>！注意html页面中新建的GetValue函数</div><div></div><div>通过&lt;script&gt;标签调用示例链接产生GetValue值时就会弹窗</div><div></div><div></div><div>然后通过火狐firebug进入控制台查看GetValue的参数传递给getVal的值</div><div></div><div>Object { status=22, message="param error:to illegal, ...support such coord type", result=[0]}</div><img src ="http://www.blogjava.net/jjshcc/aggbug/422401.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jjshcc/" target="_blank">Eric_jiang</a> 2015-01-23 20:50 <a href="http://www.blogjava.net/jjshcc/archive/2015/01/23/422401.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>各地图坐标系转换(WGS84坐标系,GCJ02坐标系,BD09坐标系)</title><link>http://www.blogjava.net/jjshcc/archive/2015/01/23/422399.html</link><dc:creator>Eric_jiang</dc:creator><author>Eric_jiang</author><pubDate>Fri, 23 Jan 2015 12:12:00 GMT</pubDate><guid>http://www.blogjava.net/jjshcc/archive/2015/01/23/422399.html</guid><wfw:comment>http://www.blogjava.net/jjshcc/comments/422399.html</wfw:comment><comments>http://www.blogjava.net/jjshcc/archive/2015/01/23/422399.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jjshcc/comments/commentRss/422399.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jjshcc/services/trackbacks/422399.html</trackback:ping><description><![CDATA[<div bg_java"="" style="width: 700.90625px; color: #333333; line-height: 26px;"><ol start="1"><li style="line-height: 18px;">package&nbsp;position;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;</li><li style="line-height: 18px;">import&nbsp;org.junit.Test;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;</li><li style="line-height: 18px;">/**&nbsp;</li><li style="line-height: 18px;">&nbsp;*&nbsp;各地图API坐标系统比较与转换;&nbsp;</li><li style="line-height: 18px;">&nbsp;*&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;*&nbsp;WGS84坐标系：即地球坐标系，国际上通用的坐标系。设备一般包含GPS芯片或者北斗芯片获取的经纬度为WGS84地理坐标系,谷歌地图采用的是WGS84地理坐标系（中国范围除外）;&nbsp;</li><li style="line-height: 18px;">&nbsp;*&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;*&nbsp;GCJ02坐标系：即火星坐标系，是由中国国家测绘局制订的地理信息系统的坐标系统。由WGS84坐标系经加密后的坐标系。谷歌中国地图和搜搜中国地图采用的是GCJ02地理坐标系;&nbsp;</li><li style="line-height: 18px;">&nbsp;*&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;*&nbsp;BD09坐标系：即百度坐标系，GCJ02坐标系经加密后的坐标系;&nbsp;</li><li style="line-height: 18px;">&nbsp;*&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;*&nbsp;搜狗坐标系、图吧坐标系等，估计也是在GCJ02基础上加密而成的。&nbsp;</li><li style="line-height: 18px;">&nbsp;*&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;*&nbsp;@author&nbsp;chenhua&nbsp;</li><li style="line-height: 18px;">&nbsp;*&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;*/&nbsp;&nbsp;</li><li style="line-height: 18px;">public&nbsp;class&nbsp;PositionUtil&nbsp;&nbsp;</li><li style="line-height: 18px;">{&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;static&nbsp;double&nbsp;pi&nbsp;=&nbsp;<span style="color: #c00000;">3.1415926535897932384626</span>;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;static&nbsp;double&nbsp;a&nbsp;=&nbsp;<span style="color: #c00000;">6378245.0</span>;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;static&nbsp;double&nbsp;ee&nbsp;=&nbsp;<span style="color: #c00000;">0.00669342162296594323</span>;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #646464;">@Test</span>&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;t1()&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;北斗芯片获取的经纬度为WGS84地理坐标&nbsp;31.426896,119.496145&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gps&nbsp;gps&nbsp;=&nbsp;new&nbsp;Gps(<span style="color: #c00000;">31.426896</span>,&nbsp;<span style="color: #c00000;">119.496145</span>);&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("gps&nbsp;:"&nbsp;+&nbsp;gps);&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gps&nbsp;gcj&nbsp;=&nbsp;gps84_To_Gcj02(gps.getWgLat(),&nbsp;gps.getWgLon());&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("gcj&nbsp;:"&nbsp;+&nbsp;gcj);&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gps&nbsp;star&nbsp;=&nbsp;gcj_To_Gps84(gcj.getWgLat(),&nbsp;gcj.getWgLon());&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("star:"&nbsp;+&nbsp;star);&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gps&nbsp;bd&nbsp;=&nbsp;gcj02_To_Bd09(gcj.getWgLat(),&nbsp;gcj.getWgLon());&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("bd&nbsp;&nbsp;:"&nbsp;+&nbsp;bd);&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gps&nbsp;gcj2&nbsp;=&nbsp;bd09_To_Gcj02(bd.getWgLat(),&nbsp;bd.getWgLon());&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("gcj&nbsp;:"&nbsp;+&nbsp;gcj2);&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;/**&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;84&nbsp;to&nbsp;火星坐标系&nbsp;(GCJ-02)&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;World&nbsp;Geodetic&nbsp;System&nbsp;==&gt;&nbsp;Mars&nbsp;Geodetic&nbsp;System&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;lat&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;lon&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;Gps&nbsp;gps84_To_Gcj02(double&nbsp;lat,&nbsp;double&nbsp;lon)&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(outOfChina(lat,&nbsp;lon))&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;null;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;double&nbsp;dLat&nbsp;=&nbsp;transformLat(lon&nbsp;-&nbsp;<span style="color: #c00000;">105.0</span>,&nbsp;lat&nbsp;-&nbsp;<span style="color: #c00000;">35.0</span>);&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;double&nbsp;dLon&nbsp;=&nbsp;transformLon(lon&nbsp;-&nbsp;<span style="color: #c00000;">105.0</span>,&nbsp;lat&nbsp;-&nbsp;<span style="color: #c00000;">35.0</span>);&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;double&nbsp;radLat&nbsp;=&nbsp;lat&nbsp;/&nbsp;<span style="color: #c00000;">180.0</span>&nbsp;*&nbsp;pi;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;double&nbsp;magic&nbsp;=&nbsp;Math.sin(radLat);&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;magic&nbsp;=&nbsp;<span style="color: #c00000;">1</span>&nbsp;-&nbsp;ee&nbsp;*&nbsp;magic&nbsp;*&nbsp;magic;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;double&nbsp;sqrtMagic&nbsp;=&nbsp;Math.sqrt(magic);&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dLat&nbsp;=&nbsp;(dLat&nbsp;*&nbsp;<span style="color: #c00000;">180.0</span>)&nbsp;/&nbsp;((a&nbsp;*&nbsp;(<span style="color: #c00000;">1</span>&nbsp;-&nbsp;ee))&nbsp;/&nbsp;(magic&nbsp;*&nbsp;sqrtMagic)&nbsp;*&nbsp;pi);&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dLon&nbsp;=&nbsp;(dLon&nbsp;*&nbsp;<span style="color: #c00000;">180.0</span>)&nbsp;/&nbsp;(a&nbsp;/&nbsp;sqrtMagic&nbsp;*&nbsp;Math.cos(radLat)&nbsp;*&nbsp;pi);&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;double&nbsp;mgLat&nbsp;=&nbsp;lat&nbsp;+&nbsp;dLat;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;double&nbsp;mgLon&nbsp;=&nbsp;lon&nbsp;+&nbsp;dLon;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;new&nbsp;Gps(mgLat,&nbsp;mgLon);&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;/**&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;火星坐标系&nbsp;(GCJ-02)&nbsp;to&nbsp;84&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;lon&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;lat&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;Gps&nbsp;gcj_To_Gps84(double&nbsp;lat,&nbsp;double&nbsp;lon)&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gps&nbsp;gps&nbsp;=&nbsp;transform(lat,&nbsp;lon);&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;double&nbsp;lontitude&nbsp;=&nbsp;lon&nbsp;*&nbsp;<span style="color: #c00000;">2</span>&nbsp;-&nbsp;gps.getWgLon();&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;double&nbsp;latitude&nbsp;=&nbsp;lat&nbsp;*&nbsp;<span style="color: #c00000;">2</span>&nbsp;-&nbsp;gps.getWgLat();&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;new&nbsp;Gps(latitude,&nbsp;lontitude);&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;/**&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;火星坐标系&nbsp;(GCJ-02)&nbsp;与百度坐标系&nbsp;(BD-09)&nbsp;的转换算法&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;将&nbsp;GCJ-02&nbsp;坐标转换成&nbsp;BD-09&nbsp;坐标&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;gg_lat&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;gg_lon&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;Gps&nbsp;gcj02_To_Bd09(double&nbsp;gg_lat,&nbsp;double&nbsp;gg_lon)&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;double&nbsp;x&nbsp;=&nbsp;gg_lon,&nbsp;y&nbsp;=&nbsp;gg_lat;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;double&nbsp;z&nbsp;=&nbsp;Math.sqrt(x&nbsp;*&nbsp;x&nbsp;+&nbsp;y&nbsp;*&nbsp;y)&nbsp;+&nbsp;<span style="color: #c00000;">0.00002</span>&nbsp;*&nbsp;Math.sin(y&nbsp;*&nbsp;pi);&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;double&nbsp;theta&nbsp;=&nbsp;Math.atan2(y,&nbsp;x)&nbsp;+&nbsp;<span style="color: #c00000;">0.000003</span>&nbsp;*&nbsp;Math.cos(x&nbsp;*&nbsp;pi);&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;double&nbsp;bd_lon&nbsp;=&nbsp;z&nbsp;*&nbsp;Math.cos(theta)&nbsp;+&nbsp;<span style="color: #c00000;">0.0065</span>;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;double&nbsp;bd_lat&nbsp;=&nbsp;z&nbsp;*&nbsp;Math.sin(theta)&nbsp;+&nbsp;<span style="color: #c00000;">0.006</span>;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;new&nbsp;Gps(bd_lat,&nbsp;bd_lon);&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;/**&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;火星坐标系&nbsp;(GCJ-02)&nbsp;与百度坐标系&nbsp;(BD-09)&nbsp;的转换算法&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;将&nbsp;BD-09&nbsp;坐标转换成GCJ-02&nbsp;坐标&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;bd_lat&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;bd_lon&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;Gps&nbsp;bd09_To_Gcj02(double&nbsp;bd_lat,&nbsp;double&nbsp;bd_lon)&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;double&nbsp;x&nbsp;=&nbsp;bd_lon&nbsp;-&nbsp;<span style="color: #c00000;">0.0065</span>,&nbsp;y&nbsp;=&nbsp;bd_lat&nbsp;-&nbsp;<span style="color: #c00000;">0.006</span>;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;double&nbsp;z&nbsp;=&nbsp;Math.sqrt(x&nbsp;*&nbsp;x&nbsp;+&nbsp;y&nbsp;*&nbsp;y)&nbsp;-&nbsp;<span style="color: #c00000;">0.00002</span>&nbsp;*&nbsp;Math.sin(y&nbsp;*&nbsp;pi);&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;double&nbsp;theta&nbsp;=&nbsp;Math.atan2(y,&nbsp;x)&nbsp;-&nbsp;<span style="color: #c00000;">0.000003</span>&nbsp;*&nbsp;Math.cos(x&nbsp;*&nbsp;pi);&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;double&nbsp;gg_lon&nbsp;=&nbsp;z&nbsp;*&nbsp;Math.cos(theta);&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;double&nbsp;gg_lat&nbsp;=&nbsp;z&nbsp;*&nbsp;Math.sin(theta);&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;new&nbsp;Gps(gg_lat,&nbsp;gg_lon);&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;static&nbsp;boolean&nbsp;outOfChina(double&nbsp;lat,&nbsp;double&nbsp;lon)&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(lon&nbsp;&lt;&nbsp;<span style="color: #c00000;">72.004</span>&nbsp;||&nbsp;lon&nbsp;&gt;&nbsp;<span style="color: #c00000;">137.8347</span>)&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(lat&nbsp;&lt;&nbsp;<span style="color: #c00000;">0.8293</span>&nbsp;||&nbsp;lat&nbsp;&gt;&nbsp;<span style="color: #c00000;">55.8271</span>)&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;Gps&nbsp;transform(double&nbsp;lat,&nbsp;double&nbsp;lon)&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(outOfChina(lat,&nbsp;lon))&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;new&nbsp;Gps(lat,&nbsp;lon);&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;double&nbsp;dLat&nbsp;=&nbsp;transformLat(lon&nbsp;-&nbsp;<span style="color: #c00000;">105.0</span>,&nbsp;lat&nbsp;-&nbsp;<span style="color: #c00000;">35.0</span>);&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;double&nbsp;dLon&nbsp;=&nbsp;transformLon(lon&nbsp;-&nbsp;<span style="color: #c00000;">105.0</span>,&nbsp;lat&nbsp;-&nbsp;<span style="color: #c00000;">35.0</span>);&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;double&nbsp;radLat&nbsp;=&nbsp;lat&nbsp;/&nbsp;<span style="color: #c00000;">180.0</span>&nbsp;*&nbsp;pi;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;double&nbsp;magic&nbsp;=&nbsp;Math.sin(radLat);&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;magic&nbsp;=&nbsp;<span style="color: #c00000;">1</span>&nbsp;-&nbsp;ee&nbsp;*&nbsp;magic&nbsp;*&nbsp;magic;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;double&nbsp;sqrtMagic&nbsp;=&nbsp;Math.sqrt(magic);&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dLat&nbsp;=&nbsp;(dLat&nbsp;*&nbsp;<span style="color: #c00000;">180.0</span>)&nbsp;/&nbsp;((a&nbsp;*&nbsp;(<span style="color: #c00000;">1</span>&nbsp;-&nbsp;ee))&nbsp;/&nbsp;(magic&nbsp;*&nbsp;sqrtMagic)&nbsp;*&nbsp;pi);&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dLon&nbsp;=&nbsp;(dLon&nbsp;*&nbsp;<span style="color: #c00000;">180.0</span>)&nbsp;/&nbsp;(a&nbsp;/&nbsp;sqrtMagic&nbsp;*&nbsp;Math.cos(radLat)&nbsp;*&nbsp;pi);&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;double&nbsp;mgLat&nbsp;=&nbsp;lat&nbsp;+&nbsp;dLat;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;double&nbsp;mgLon&nbsp;=&nbsp;lon&nbsp;+&nbsp;dLon;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;new&nbsp;Gps(mgLat,&nbsp;mgLon);&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;static&nbsp;double&nbsp;transformLat(double&nbsp;x,&nbsp;double&nbsp;y)&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;double&nbsp;ret&nbsp;=&nbsp;-<span style="color: #c00000;">100.0</span>&nbsp;+&nbsp;<span style="color: #c00000;">2.0</span>&nbsp;*&nbsp;x&nbsp;+&nbsp;<span style="color: #c00000;">3.0</span>&nbsp;*&nbsp;y&nbsp;+&nbsp;<span style="color: #c00000;">0.2</span>&nbsp;*&nbsp;y&nbsp;*&nbsp;y&nbsp;+&nbsp;<span style="color: #c00000;">0.1</span>&nbsp;*&nbsp;x&nbsp;*&nbsp;y&nbsp;+&nbsp;<span style="color: #c00000;">0.2</span>&nbsp;*&nbsp;Math.sqrt(Math.abs(x));&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret&nbsp;+=&nbsp;(<span style="color: #c00000;">20.0</span>&nbsp;*&nbsp;Math.sin(<span style="color: #c00000;">6.0</span>&nbsp;*&nbsp;x&nbsp;*&nbsp;pi)&nbsp;+&nbsp;<span style="color: #c00000;">20.0</span>&nbsp;*&nbsp;Math.sin(<span style="color: #c00000;">2.0</span>&nbsp;*&nbsp;x&nbsp;*&nbsp;pi))&nbsp;*&nbsp;<span style="color: #c00000;">2.0</span>&nbsp;/&nbsp;<span style="color: #c00000;">3.0</span>;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret&nbsp;+=&nbsp;(<span style="color: #c00000;">20.0</span>&nbsp;*&nbsp;Math.sin(y&nbsp;*&nbsp;pi)&nbsp;+&nbsp;<span style="color: #c00000;">40.0</span>&nbsp;*&nbsp;Math.sin(y&nbsp;/&nbsp;<span style="color: #c00000;">3.0</span>&nbsp;*&nbsp;pi))&nbsp;*&nbsp;<span style="color: #c00000;">2.0</span>&nbsp;/&nbsp;<span style="color: #c00000;">3.0</span>;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret&nbsp;+=&nbsp;(<span style="color: #c00000;">160.0</span>&nbsp;*&nbsp;Math.sin(y&nbsp;/&nbsp;<span style="color: #c00000;">12.0</span>&nbsp;*&nbsp;pi)&nbsp;+&nbsp;<span style="color: #c00000;">320</span>&nbsp;*&nbsp;Math.sin(y&nbsp;*&nbsp;pi&nbsp;/&nbsp;<span style="color: #c00000;">30.0</span>))&nbsp;*&nbsp;<span style="color: #c00000;">2.0</span>&nbsp;/&nbsp;<span style="color: #c00000;">3.0</span>;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;ret;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;static&nbsp;double&nbsp;transformLon(double&nbsp;x,&nbsp;double&nbsp;y)&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;double&nbsp;ret&nbsp;=&nbsp;<span style="color: #c00000;">300.0</span>&nbsp;+&nbsp;x&nbsp;+&nbsp;<span style="color: #c00000;">2.0</span>&nbsp;*&nbsp;y&nbsp;+&nbsp;<span style="color: #c00000;">0.1</span>&nbsp;*&nbsp;x&nbsp;*&nbsp;x&nbsp;+&nbsp;<span style="color: #c00000;">0.1</span>&nbsp;*&nbsp;x&nbsp;*&nbsp;y&nbsp;+&nbsp;<span style="color: #c00000;">0.1</span>&nbsp;*&nbsp;Math.sqrt(Math.abs(x));&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret&nbsp;+=&nbsp;(<span style="color: #c00000;">20.0</span>&nbsp;*&nbsp;Math.sin(<span style="color: #c00000;">6.0</span>&nbsp;*&nbsp;x&nbsp;*&nbsp;pi)&nbsp;+&nbsp;<span style="color: #c00000;">20.0</span>&nbsp;*&nbsp;Math.sin(<span style="color: #c00000;">2.0</span>&nbsp;*&nbsp;x&nbsp;*&nbsp;pi))&nbsp;*&nbsp;<span style="color: #c00000;">2.0</span>&nbsp;/&nbsp;<span style="color: #c00000;">3.0</span>;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret&nbsp;+=&nbsp;(<span style="color: #c00000;">20.0</span>&nbsp;*&nbsp;Math.sin(x&nbsp;*&nbsp;pi)&nbsp;+&nbsp;<span style="color: #c00000;">40.0</span>&nbsp;*&nbsp;Math.sin(x&nbsp;/&nbsp;<span style="color: #c00000;">3.0</span>&nbsp;*&nbsp;pi))&nbsp;*&nbsp;<span style="color: #c00000;">2.0</span>&nbsp;/&nbsp;<span style="color: #c00000;">3.0</span>;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret&nbsp;+=&nbsp;(<span style="color: #c00000;">150.0</span>&nbsp;*&nbsp;Math.sin(x&nbsp;/&nbsp;<span style="color: #c00000;">12.0</span>&nbsp;*&nbsp;pi)&nbsp;+&nbsp;<span style="color: #c00000;">300.0</span>&nbsp;*&nbsp;Math.sin(x&nbsp;/&nbsp;<span style="color: #c00000;">30.0</span>&nbsp;*&nbsp;pi))&nbsp;*&nbsp;<span style="color: #c00000;">2.0</span>&nbsp;/&nbsp;<span style="color: #c00000;">3.0</span>;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;ret;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;</li><li style="line-height: 18px;">}&nbsp;&nbsp;</li></ol></div><div bg_java"="" style="width: 700.90625px; color: #333333; line-height: 26px;"><div><div><strong>[java]</strong>&nbsp;<a href="http://blog.csdn.net/shaqimia/article/details/39319637#" title="view plain" style="padding: 1px; display: inline-block; width: 16px; height: 16px; text-indent: -2000px; background-image: url(http://static.blog.csdn.net/scripts/SyntaxHighlighter/styles/images/default/ico_plain.gif); background-position: 0% 0%; background-repeat: no-repeat;">view plain</a><a href="http://blog.csdn.net/shaqimia/article/details/39319637#" title="copy" style="padding: 1px; display: inline-block; width: 16px; height: 16px; text-indent: -2000px; background-image: url(http://static.blog.csdn.net/scripts/SyntaxHighlighter/styles/images/default/ico_copy.gif); background-position: 0% 0%; background-repeat: no-repeat;">copy</a><a href="https://code.csdn.net/snippets/469777" target="_blank" title="在CODE上查看代码片" style="padding: 1px; display: inline-block; width: 16px; height: 16px; background-position: 0% 0%; background-repeat: no-repeat;"><img src="https://code.csdn.net/assets/CODE_ico.png" width="12" height="12" alt="在CODE上查看代码片" style="border: none; max-width: 100%; position: relative; top: 1px; left: 2px;" /></a><a href="https://code.csdn.net/snippets/469777/fork" target="_blank" title="派生到我的代码片" style="padding: 1px; display: inline-block; width: 16px; height: 16px; background-position: 0% 0%; background-repeat: no-repeat;"><img src="https://code.csdn.net/assets/ico_fork.svg" width="12" height="12" alt="派生到我的代码片" style="border: none; max-width: 100%; position: relative; top: 2px; left: 2px;" /></a><div style="position: absolute; left: 704px; top: 3914px; width: 18px; height: 18px; z-index: 99;"></div></div></div><ol start="1"><li style="line-height: 18px;">package&nbsp;position;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;</li><li style="line-height: 18px;">public&nbsp;class&nbsp;Gps&nbsp;&nbsp;</li><li style="line-height: 18px;">{&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;double&nbsp;wgLat;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;double&nbsp;wgLon;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;Gps(double&nbsp;wgLat,&nbsp;double&nbsp;wgLon)&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setWgLat(wgLat);&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setWgLon(wgLon);&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;double&nbsp;getWgLat()&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;wgLat;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;setWgLat(double&nbsp;wgLat)&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.wgLat&nbsp;=&nbsp;wgLat;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;double&nbsp;getWgLon()&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;wgLon;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;setWgLon(double&nbsp;wgLon)&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.wgLon&nbsp;=&nbsp;wgLon;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #646464;">@Override</span>&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;String&nbsp;toString()&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;wgLat&nbsp;+&nbsp;","&nbsp;+&nbsp;wgLon;&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</li><li style="line-height: 18px;">&nbsp;&nbsp;</li><li style="line-height: 18px;">} &nbsp;</li></ol></div><img src ="http://www.blogjava.net/jjshcc/aggbug/422399.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jjshcc/" target="_blank">Eric_jiang</a> 2015-01-23 20:12 <a href="http://www.blogjava.net/jjshcc/archive/2015/01/23/422399.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>百度地图经纬度转换JS版</title><link>http://www.blogjava.net/jjshcc/archive/2015/01/23/422396.html</link><dc:creator>Eric_jiang</dc:creator><author>Eric_jiang</author><pubDate>Fri, 23 Jan 2015 10:56:00 GMT</pubDate><guid>http://www.blogjava.net/jjshcc/archive/2015/01/23/422396.html</guid><wfw:comment>http://www.blogjava.net/jjshcc/comments/422396.html</wfw:comment><comments>http://www.blogjava.net/jjshcc/archive/2015/01/23/422396.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jjshcc/comments/commentRss/422396.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jjshcc/services/trackbacks/422396.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: //百度地图的坐标转换，由于百度地图在GCJ02协议的基础上又做了一次处理，变为 BD09协议的坐标，以下是坐标的转化方式，可以方便和其他平台转化jQuery.MapConvert = {&nbsp;&nbsp;&nbsp;&nbsp;x_pi: 3.14159265358979324 * 3000.0 / 180.0,&nbsp;&nbsp;&nbsp;&nbsp;/// &lt;summary...&nbsp;&nbsp;<a href='http://www.blogjava.net/jjshcc/archive/2015/01/23/422396.html'>阅读全文</a><img src ="http://www.blogjava.net/jjshcc/aggbug/422396.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jjshcc/" target="_blank">Eric_jiang</a> 2015-01-23 18:56 <a href="http://www.blogjava.net/jjshcc/archive/2015/01/23/422396.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>微信开发接口以及资源收集整理</title><link>http://www.blogjava.net/jjshcc/archive/2014/10/08/418522.html</link><dc:creator>Eric_jiang</dc:creator><author>Eric_jiang</author><pubDate>Wed, 08 Oct 2014 09:55:00 GMT</pubDate><guid>http://www.blogjava.net/jjshcc/archive/2014/10/08/418522.html</guid><wfw:comment>http://www.blogjava.net/jjshcc/comments/418522.html</wfw:comment><comments>http://www.blogjava.net/jjshcc/archive/2014/10/08/418522.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jjshcc/comments/commentRss/418522.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jjshcc/services/trackbacks/418522.html</trackback:ping><description><![CDATA[<h2><span style="line-height: 24px;"><span style="font-family: 'Times New Roman'; font-size: 14px;">1、百度地图API</span></span></h2><div style="color: #333333; font-family: Arial; background-color: #ffffff; border: 0px; margin: 0px; padding-top: 12px; vertical-align: baseline; clear: both; line-height: 24px;"><p style="background-color: transparent; border: 0px; margin-top: 0px; margin-bottom: 24px; padding-top: 0px; padding-bottom: 0px; vertical-align: baseline;"><span style="font-family: 'Times New Roman';">车联网API网址：http://developer.baidu.com/map/carhome.htm<br />登录http://lbsyun.baidu.com/apiconsole/key?application=key获得密钥<br />通过坐标取用户位置（反Geocoding）http://api.map.baidu.com/telematics/v2/reverseGeocoding?location=116.305145,39.982368&amp;ak=yourkey<br />测距http://api.map.baidu.com/telematics/v2/distance?waypoints=118.77147503233,32.054128923368;116.3521416286,39.965780080447&amp;ak=yourkey<br />获取经纬度http://www.gpsspg.com/maps.htm<br />天气查询http://api.map.baidu.com/telematics/v2/weather?location=北京&amp;ak=yourkey</span></p><p style="background-color: transparent; border: 0px; margin-top: 0px; margin-bottom: 24px; padding-top: 0px; padding-bottom: 0px; vertical-align: baseline;"><span style="font-family: 'Times New Roman';">http://api.map.baidu.com/telematics/v2/weather?location=经度,纬度&amp;ak=yourkey</span></p><p style="background-color: transparent; border: 0px; margin-top: 0px; margin-bottom: 24px; padding-top: 0px; padding-bottom: 0px; vertical-align: baseline;"><span style="font-family: 'Times New Roman';">查询周边商家http://api.map.baidu.com/telematics/v2/local?location=经度,纬度&amp;keyword=类型&amp;ak=yourkey&amp;radius=半径&amp;number=10<br />导航地图http://developer.baidu.com/map/uri.htm<br />http://api.map.baidu.com/direction?origin=latlan:34.264642646862,108.95108518068|name:我家&amp;destination=大雁塔&amp;mode=driving&amp;region=西安&amp;output=html&amp;src=yourCompanyName|yourAppName&nbsp; (mode可以为driving架车、transit公交、walking步行)</span></p><p style="background-color: transparent; border: 0px; margin-top: 0px; margin-bottom: 24px; padding-top: 0px; padding-bottom: 0px; vertical-align: baseline;"><span style="font-family: 'Times New Roman';">2、Google地图API</span></p><p style="background-color: transparent; border: 0px; margin-top: 0px; margin-bottom: 24px; padding-top: 0px; padding-bottom: 0px; vertical-align: baseline;"><span style="font-family: 'Times New Roman';">https://developers.google.com/maps/?hl=zh-cn</span></p><p style="background-color: transparent; border: 0px; margin-top: 0px; margin-bottom: 24px; padding-top: 0px; padding-bottom: 0px; vertical-align: baseline;"><span style="font-family: 'Times New Roman';">申请密码https://code.google.com/apis/console<br />经纬度解析http://maps.googleapis.com/maps/api/geocode/xml?latlng=23.416155105336312,116.6294002532959&amp;sensor=false&amp;language=zh-CN<br />测距/测时https://developers.google.com/maps/documentation/distancematrix/</span></p><p style="background-color: transparent; border: 0px; margin-top: 0px; margin-bottom: 24px; padding-top: 0px; padding-bottom: 0px; vertical-align: baseline;"><span style="font-family: 'Times New Roman';">http://maps.googleapis.com/maps/api/distancematrix/xml?origins=经度,纬度&amp;destinations=经度,纬度&amp;mode=walking&amp;language=zh-CN&amp;sensor=false</span></p><p style="background-color: transparent; border: 0px; margin-top: 0px; margin-bottom: 24px; padding-top: 0px; padding-bottom: 0px; vertical-align: baseline;"><span style="font-family: 'Times New Roman';">(origine起点、destinations终点、sensor感应器是否启动gps、mode包含driving/walking/bicyilng、language语言、avoid避开highways高速tolls收费)<br />查询周边商家https://developers.google.com/places/</span></p><p style="background-color: transparent; border: 0px; margin-top: 0px; margin-bottom: 24px; padding-top: 0px; padding-bottom: 0px; vertical-align: baseline;"><span style="font-family: 'Times New Roman';">https://developers.google.com/places/documentation/search?hl=zh-CN</span></p><p style="background-color: transparent; border: 0px; margin-top: 0px; margin-bottom: 24px; padding-top: 0px; padding-bottom: 0px; vertical-align: baseline;"><span style="font-family: 'Times New Roman';">https://maps.googleapis.com/maps/api/place/search/xml?location=经度,纬度&amp;radius=3000&amp;sensor=false&amp;key=yourkey&amp;keyword=餐馆&amp;language=zh-CN</span></p><p style="background-color: transparent; border: 0px; margin-top: 0px; margin-bottom: 24px; padding-top: 0px; padding-bottom: 0px; vertical-align: baseline;"><span style="font-family: 'Times New Roman';">3、高德地图API</span></p><p style="background-color: transparent; border: 0px; margin-top: 0px; margin-bottom: 24px; padding-top: 0px; padding-bottom: 0px; vertical-align: baseline;"><span style="font-family: 'Times New Roman';">http://code.autonavi.com/index</span></p><p style="background-color: transparent; border: 0px; margin-top: 0px; margin-bottom: 24px; padding-top: 0px; padding-bottom: 0px; vertical-align: baseline;"><span style="font-family: 'Times New Roman';">浏览器调用http://code.autonavi.com/URI/browser_guide<br />接口格式http://mo.amap.com/?from=经度,纬度&amp;to=经度,纬度&amp;type=0&amp;opt=1&amp;dev=1</span></p><p style="background-color: transparent; border: 0px; margin-top: 0px; margin-bottom: 24px; padding-top: 0px; padding-bottom: 0px; vertical-align: baseline;"><span style="font-family: 'Times New Roman';">4、小黄鸡(试用每天只能调100次，30美元/10万次调用)</span></p><p style="background-color: transparent; border: 0px; margin-top: 0px; margin-bottom: 24px; padding-top: 0px; padding-bottom: 0px; vertical-align: baseline;"><span style="font-family: 'Times New Roman';">http://developer.simsimi.com/api?lang=zh_CN</span></p><p style="background-color: transparent; border: 0px; margin-top: 0px; margin-bottom: 24px; padding-top: 0px; padding-bottom: 0px; vertical-align: baseline;"><span style="font-family: 'Times New Roman';">试用地址http://sandbox.api.simsimi.com/request.p (参数key密钥、text用户的问题、lc语言中文ch)</span></p><p style="background-color: transparent; border: 0px; margin-top: 0px; margin-bottom: 24px; padding-top: 0px; padding-bottom: 0px; vertical-align: baseline;"><span style="font-family: 'Times New Roman';">5、百度翻译</span></p><p style="background-color: transparent; border: 0px; margin-top: 0px; margin-bottom: 24px; padding-top: 0px; padding-bottom: 0px; vertical-align: baseline;"><span style="font-family: 'Times New Roman';">http://developer.baidu.com/ms/translate</span></p><p style="background-color: transparent; border: 0px; margin-top: 0px; margin-bottom: 24px; padding-top: 0px; padding-bottom: 0px; vertical-align: baseline;"><span style="font-family: 'Times New Roman';">接口http://openapi.baidu.com/public/2.0/bmt/translate&nbsp; (参数from源码语言ch中文、en英文、jp日语、auto自动)</span></p><p style="background-color: transparent; border: 0px; margin-top: 0px; margin-bottom: 24px; padding-top: 0px; padding-bottom: 0px; vertical-align: baseline;"><span style="font-family: 'Times New Roman';">http://openapi.baidu.com/public/2.0/bmt/translate?client_id=yourApiKey&amp;q=关键词&amp;from=auto&amp;to=auto</span></p><p style="background-color: transparent; border: 0px; margin-top: 0px; margin-bottom: 24px; padding-top: 0px; padding-bottom: 0px; vertical-align: baseline;"><span style="font-family: 'Times New Roman';">6、快递查询<br />申请KEY&nbsp; http://www.aikuaidi.cn/api/?type=1</span></p><p style="background-color: transparent; border: 0px; margin-top: 0px; margin-bottom: 24px; padding-top: 0px; padding-bottom: 0px; vertical-align: baseline;"><span style="font-family: 'Times New Roman';">http://www.aikuaidi.cn/rest/?key=参数&amp;order=快递单号&amp;id=快递拼音&amp;ord=排序方式&amp;show=</span></p><p style="background-color: transparent; border: 0px; margin-top: 0px; margin-bottom: 24px; padding-top: 0px; padding-bottom: 0px; vertical-align: baseline;"><span style="font-family: 'Times New Roman';">（圆通yuantong/申通shentong/EMSems/韵达yunda/顺丰shunfeng,ord排序asc/desc,show可以为JSON/XML/HTML）</span></p><p style="background-color: transparent; border: 0px; margin-top: 0px; margin-bottom: 24px; padding-top: 0px; padding-bottom: 0px; vertical-align: baseline;"><span style="font-family: 'Times New Roman';">7、每日笑话(不限次数，不用申请KEY)</span></p><p style="background-color: transparent; border: 0px; margin-top: 0px; margin-bottom: 24px; padding-top: 0px; padding-bottom: 0px; vertical-align: baseline;"><span style="font-family: 'Times New Roman';">http://api.94qing.com/?type=joke&amp;msg=</span></p><p style="background-color: transparent; border: 0px; margin-top: 0px; margin-bottom: 24px; padding-top: 0px; padding-bottom: 0px; vertical-align: baseline;"><span style="font-family: 'Times New Roman';">8、RSS订阅</span></p><p style="background-color: transparent; border: 0px; margin-top: 0px; margin-bottom: 24px; padding-top: 0px; padding-bottom: 0px; vertical-align: baseline;"><span style="font-family: 'Times New Roman';">http://www.baidu.com/search/rss.html</span></p><p style="background-color: transparent; border: 0px; margin-top: 0px; margin-bottom: 24px; padding-top: 0px; padding-bottom: 0px; vertical-align: baseline;"><span style="font-family: 'Times New Roman';">9、刮刮乐(只是源码地址，需要封装管理程序)</span></p><p style="background-color: transparent; border: 0px; margin-top: 0px; margin-bottom: 24px; padding-top: 0px; padding-bottom: 0px; vertical-align: baseline;"><span style="font-family: 'Times New Roman';">http://kuro.tw/scratch.html</span></p><p style="background-color: transparent; border: 0px; margin-top: 0px; margin-bottom: 24px; padding-top: 0px; padding-bottom: 0px; vertical-align: baseline;"><span style="font-family: 'Times New Roman';">10、第三方接口<br />乐享微信http://www.wxapi.cn/&nbsp; （收费，不开源）<br />365微服务http://www.weduty.com&nbsp; （收费，不开源）<br />宾果科技https://github.com/takura/WeChat4DiscuzX-Binguo&nbsp; (discuz论坛插件、名费、开源)<br />小I机器人http://www.xiaoi.com&nbsp; (智能聊天，收费，不开源)<br />V5智能客服http://www.v5kf.com&nbsp; (基础免费、增值收费、不开源)<br />小九机器人http://www.xiaojo.com&nbsp; (免费、开源)<br />微擎http://www.we7.cc/&nbsp; (免费、开源)</span></p><p style="background-color: transparent; border: 0px; margin-top: 0px; margin-bottom: 24px; padding-top: 0px; padding-bottom: 0px; vertical-align: baseline;"><span style="font-family: 'Times New Roman';">11、百度BAE以及新浪SAE<br />百度BAE&nbsp; http://developer.baidu.com/&nbsp; (免费创建10个应用，每天200M免费流量，数据库每月1G免费流量,缓存为memcache不免费1.6元/GB/天)<br />计费&nbsp; http://developer.baidu.com/dev#/price/charge<br />新浪SAE&nbsp; http://sae.sina.com.cn/ (免费创建10个应用)<br />计费&nbsp; http://sae.sina.com.cn/?m=devcenter&amp;catId=155</span></p><p style="background-color: transparent; border: 0px; margin-top: 0px; margin-bottom: 24px; padding-top: 0px; padding-bottom: 0px; vertical-align: baseline;"><span style="font-family: 'Times New Roman';">12、WAP在线生成</span></p><p style="background-color: transparent; border: 0px; margin-top: 0px; margin-bottom: 24px; padding-top: 0px; padding-bottom: 0px; vertical-align: baseline;"><span style="font-family: 'Times New Roman';">http://siteapp.baidu.com/</span></p><p style="background-color: transparent; border: 0px; margin-top: 0px; margin-bottom: 24px; padding-top: 0px; padding-bottom: 0px; vertical-align: baseline;"><span style="font-family: 'Times New Roman';">13、百度应用中心</span></p><p style="background-color: transparent; border: 0px; margin-top: 0px; margin-bottom: 24px; padding-top: 0px; padding-bottom: 0px; vertical-align: baseline;"><span style="font-family: 'Times New Roman';">http://r2.mo.baidu.com/webapp_html.php?version=4_0&amp;fn=webpage_flash</span></p></div><img src ="http://www.blogjava.net/jjshcc/aggbug/418522.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jjshcc/" target="_blank">Eric_jiang</a> 2014-10-08 17:55 <a href="http://www.blogjava.net/jjshcc/archive/2014/10/08/418522.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>微信开放平台和公众平台的区别？</title><link>http://www.blogjava.net/jjshcc/archive/2014/10/06/418474.html</link><dc:creator>Eric_jiang</dc:creator><author>Eric_jiang</author><pubDate>Mon, 06 Oct 2014 01:49:00 GMT</pubDate><guid>http://www.blogjava.net/jjshcc/archive/2014/10/06/418474.html</guid><wfw:comment>http://www.blogjava.net/jjshcc/comments/418474.html</wfw:comment><comments>http://www.blogjava.net/jjshcc/archive/2014/10/06/418474.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/jjshcc/comments/commentRss/418474.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jjshcc/services/trackbacks/418474.html</trackback:ping><description><![CDATA[<p>微信开放平台 <br />　　主要面向App开发者 通常前提是拥有成熟的应用程序 之后通过开放平台 将内容分享至朋友圈 发送给某个微信好友.</p>
<p>　　微信公众平台</p>
<p>　　强调信息流 既可以向微博一样主要推送内容 也可以像10086一样 根据用户发来的消息进行智能回复 后台可以实现某些功能.</p>
<p>　　详解:</p>
<p>　　微信开放平台也即open平台，公众平台即是mp平台，目前open 平台是腾讯移动生活电商团队&#8212;&#8212;微生活在使用，以下是区别。</p>
<p>　　详解微生活商家后台与公众平台的区别</p>
<p>　　微信是腾讯近两年崛起的一个新颖的语音沟通工具，随着微信5.0内测版本的发布，扫描二维码、条形码、甚至街景的功能;摇一摇增加了视频功能;公众账号分为企业账号和订阅账号等最新变化的出现，使得微信&#8220;横扫一切&#8221;&#8220;O2O神器&#8221;等标签更加流行。而从去年开始流行的&#8220;微信扫描二维码 免费获得会员卡&#8221;的微生活团队正是腾讯移动生活电商旗下的全新专注生活电子商务与O2O的解决方案提供商，大街小巷铺满商家二维码掀起了全国范围内的微信扫描风潮。据了解微生活有专门的商家后台帮助商家解决CRM会员关系管理、精准营销等问题，与微信的公众平台后台有所区别，一下即是笔者总结的二者的一些区别和联系。</p>
<p>　　1、 整体概览</p>
<p>　　5.0之前的微信公众平台媒体属性貌似更强一些，打开微信公众平台第一眼看见的就是实时消息。这里可以看到账号当前增加了多少粉丝、有多少用户留言。其次的重点就是开放接口，微信作为一个大的平台需要给各位开发者以更多的方便，绿色的公众平台API文档方便开发者直接点击进入，高级功能中的开发模式更为开发者提供了广阔的空间。</p>
<p>　　然而微生活商家后台则没有实时消息这个功能，因为用户的留言都已经被商家的多客服系统处理完毕，这与微生活的泛会员管理与营销平台的定位有很大的关系，时时解决会员的问题，帮助用户完成订单、订位、订房等工作，甚至是陪用户闲聊和调戏，实现用户在移动端的良好体验。总之，微生活商家后台更适合商家去做CRM 管理和会员营销。</p>
<p>　　从二者的首页中笔者读出一个趋势&#8212;&#8212;大数据管理，对于商家和媒体来说，数据管理必不可少，而从两个平台首页明显的数据折线图来看，二者都focus 在大数据上。</p>
<p>　　微信开拓了一种语音沟通的新时尚，而腾讯微生活开拓了创新的富媒体会员营销平台，解决企业数据库管理、会员关系管理、会员精准营销等问题，为传统商企打开了进军移动互联网的大门。</p>
<p>　　2、 首页</p>
<p>　　微信公众平台功能模块包括：首页、实时消息、用户管理、群发消息、素材管理、设置、高级功能。</p>
<p>　　打开微信公众平台即可看到实时消息、每日新增订阅人数和每日接收消息数的曲线图表，可以使得用户时时把控每日情况，但是无法看到多日的消息对比。首页右侧是系统公告 ，公众平台接口更新等通知。微信未来要做的是个平台，开放平台，首页的公告是为微信的开发者进行更多的指引。</p>
<p>　　微生活商家后台功能模块包括：首页、会员、交易、消息、活动、设置 。</p>
<p>　　打开微生活商家后台首先看到的是会员趋势图，包括新增总量、线下扫码增量、线上传播新增量等分类，这比微信公众平台的的会员增长图坐标要复杂一些。因为微生活会员卡是用户通过打开微信扫描二维码后，获得的一张存在于微信中的虚拟会员卡，而二维码可以存在在海报、桌贴、宣传册等线下物料上，也可以放置在微博、微信、论坛、网站等线上渠道。微生活首页右侧呈现的是今日和昨日的新增会员和交易次数、会员带动交易额。这与微生活致力于成为传统商企精准的泛会员管理与营销平台有着很大的关系，商家人员登录商家后台可以清楚明了的看到自家店面的整体销售情况和会员增长情况，时时把控商机和运营情况。 <br /></p><img src ="http://www.blogjava.net/jjshcc/aggbug/418474.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jjshcc/" target="_blank">Eric_jiang</a> 2014-10-06 09:49 <a href="http://www.blogjava.net/jjshcc/archive/2014/10/06/418474.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>微信公众平台接入Java实例，结合BAE</title><link>http://www.blogjava.net/jjshcc/archive/2014/09/30/418426.html</link><dc:creator>Eric_jiang</dc:creator><author>Eric_jiang</author><pubDate>Tue, 30 Sep 2014 03:52:00 GMT</pubDate><guid>http://www.blogjava.net/jjshcc/archive/2014/09/30/418426.html</guid><wfw:comment>http://www.blogjava.net/jjshcc/comments/418426.html</wfw:comment><comments>http://www.blogjava.net/jjshcc/archive/2014/09/30/418426.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jjshcc/comments/commentRss/418426.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jjshcc/services/trackbacks/418426.html</trackback:ping><description><![CDATA[<p>关于注册公众账号这块不详细介绍</p>
<p>注册完成，审核认证完，就可以开始玩了</p>
<p><strong>1.如何成为开发者？</strong></p>
<p><img style="width: 630px; height: 382px" alt="\" src="http://www.2cto.com/uploadfile/Collfiles/20140510/2014051009045511.jpg" /><br /></p>
<p>需要填写接口配置信息，需要自己的服务器资源，一般自己没有服务器，所以可以采用云服务器，例如BAE,SAE,阿里云服务器。这里用BAE</p>
<p><strong>2.打开百度开放云平台官网，注册，登陆，点击开发者服务管理</strong></p>
<p><img style="width: 630px; height: 350px" alt="\" src="http://www.2cto.com/uploadfile/Collfiles/20140510/2014051009045512.jpg" /><br /></p>
<p><img style="display: none" alt="\" src="" jquery180040861144306344127="1" /><img title="图片加载中..." alt="加载中..." src="http://www.2cto.com/statics/images/s_nopic.gif" /><br /></p>
<p>2.1.点击&#8220;创建工程&#8221;</p>
<p><img style="width: 397px; height: 176px" alt="\" src="http://www.2cto.com/uploadfile/Collfiles/20140510/2014051009045919.jpg" /><br /></p>
<p>填写工程相关信息，应用名称自定义，类型选择java-tomcat,域名唯一,代码管理工具选择svn 到这里，bae应用创建完了.</p>
<p><strong>3.现在来实现TOKEN验证的代码部分</strong></p>
<p>3.1.创建一个Java web工程，我用的是MyEclipse8.5，工程名称为voastudy，点击Finish完成。</p>
<p><img style="width: 485px; height: 560px" alt="\" src="http://www.2cto.com/uploadfile/Collfiles/20140510/2014051009045920.jpg" /><br /></p>
<p>3.2.新建一个servlet，这里是CoreServlet,点击Next.</p>
<p><img style="width: 472px; height: 560px" alt="\" src="http://www.2cto.com/uploadfile/Collfiles/20140510/2014051009050021.jpg" /><br /></p>
<p>&nbsp;</p>
<p>3.3.勾选创建web.xml,以及配置servlet,这里的路径很关键，这是去请求servlet里的方法</p>
<p><img style="width: 472px; height: 560px" alt="\" src="http://www.2cto.com/uploadfile/Collfiles/20140510/2014051009050022.jpg" /><br /></p>
<p>&nbsp;</p>
<p>3.4.实现验证TOKEN方法，微信公众平台提供的是PHP的实例代码.但其验证本质是一样的，都是要经过排序，sha1加密进行比较。请参考下面的代码。这是CoreServlet.java类.</p>
<p>&nbsp;</p>
<div>
<div id="highlighter_415710" class="syntaxhighlighter  java ie">
<div class="toolbar"><span><a class="toolbar_item command_help help" href="http://www.2cto.com/kf/201405/299487.html#">?</a></span></div>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
<div class="line number2 index1 alt1">2</div>
<div class="line number3 index2 alt2">3</div>
<div class="line number4 index3 alt1">4</div>
<div class="line number5 index4 alt2">5</div>
<div class="line number6 index5 alt1">6</div>
<div class="line number7 index6 alt2">7</div>
<div class="line number8 index7 alt1">8</div>
<div class="line number9 index8 alt2">9</div>
<div class="line number10 index9 alt1">10</div>
<div class="line number11 index10 alt2">11</div>
<div class="line number12 index11 alt1">12</div>
<div class="line number13 index12 alt2">13</div>
<div class="line number14 index13 alt1">14</div>
<div class="line number15 index14 alt2">15</div>
<div class="line number16 index15 alt1">16</div>
<div class="line number17 index16 alt2">17</div>
<div class="line number18 index17 alt1">18</div>
<div class="line number19 index18 alt2">19</div>
<div class="line number20 index19 alt1">20</div>
<div class="line number21 index20 alt2">21</div>
<div class="line number22 index21 alt1">22</div>
<div class="line number23 index22 alt2">23</div>
<div class="line number24 index23 alt1">24</div>
<div class="line number25 index24 alt2">25</div>
<div class="line number26 index25 alt1">26</div>
<div class="line number27 index26 alt2">27</div>
<div class="line number28 index27 alt1">28</div>
<div class="line number29 index28 alt2">29</div>
<div class="line number30 index29 alt1">30</div>
<div class="line number31 index30 alt2">31</div>
<div class="line number32 index31 alt1">32</div>
<div class="line number33 index32 alt2">33</div>
<div class="line number34 index33 alt1">34</div>
<div class="line number35 index34 alt2">35</div>
<div class="line number36 index35 alt1">36</div>
<div class="line number37 index36 alt2">37</div>
<div class="line number38 index37 alt1">38</div>
<div class="line number39 index38 alt2">39</div>
<div class="line number40 index39 alt1">40</div>
<div class="line number41 index40 alt2">41</div>
<div class="line number42 index41 alt1">42</div>
<div class="line number43 index42 alt2">43</div>
<div class="line number44 index43 alt1">44</div>
<div class="line number45 index44 alt2">45</div>
<div class="line number46 index45 alt1">46</div>
<div class="line number47 index46 alt2">47</div>
<div class="line number48 index47 alt1">48</div>
<div class="line number49 index48 alt2">49</div>
<div class="line number50 index49 alt1">50</div>
<div class="line number51 index50 alt2">51</div>
<div class="line number52 index51 alt1">52</div>
<div class="line number53 index52 alt2">53</div>
<div class="line number54 index53 alt1">54</div>
<div class="line number55 index54 alt2">55</div>
<div class="line number56 index55 alt1">56</div>
<div class="line number57 index56 alt2">57</div>
<div class="line number58 index57 alt1">58</div>
<div class="line number59 index58 alt2">59</div>
<div class="line number60 index59 alt1">60</div></td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="java keyword">package</code> <code class="java plain">wx.sunl.servlet; </code></div>
<div class="line number2 index1 alt1"><code class="java spaces">&nbsp;</code>&nbsp;</div>
<div class="line number3 index2 alt2"><code class="java keyword">import</code> <code class="java plain">java.io.IOException; </code></div>
<div class="line number4 index3 alt1"><code class="java keyword">import</code> <code class="java plain">java.io.PrintWriter; </code></div>
<div class="line number5 index4 alt2"><code class="java spaces">&nbsp;</code>&nbsp;</div>
<div class="line number6 index5 alt1"><code class="java keyword">import</code> <code class="java plain">javax.servlet.ServletException; </code></div>
<div class="line number7 index6 alt2"><code class="java keyword">import</code> <code class="java plain">javax.servlet.http.HttpServlet; </code></div>
<div class="line number8 index7 alt1"><code class="java keyword">import</code> <code class="java plain">javax.servlet.http.HttpServletRequest; </code></div>
<div class="line number9 index8 alt2"><code class="java keyword">import</code> <code class="java plain">javax.servlet.http.HttpServletResponse; </code></div>
<div class="line number10 index9 alt1"><code class="java spaces">&nbsp;</code>&nbsp;</div>
<div class="line number11 index10 alt2"><code class="java keyword">import</code> <code class="java plain">wx.sunl.util.SignUtil; </code></div>
<div class="line number12 index11 alt1"><code class="java spaces">&nbsp;</code>&nbsp;</div>
<div class="line number13 index12 alt2"><code class="java color1">@SuppressWarnings</code><code class="java plain">(</code><code class="java string">"serial"</code><code class="java plain">) </code></div>
<div class="line number14 index13 alt1"><code class="java keyword">public</code> <code class="java keyword">class</code> <code class="java plain">CoreServlet </code><code class="java keyword">extends</code> <code class="java plain">HttpServlet&nbsp; </code></div>
<div class="line number15 index14 alt2"><code class="java plain">{ </code></div>
<div class="line number16 index15 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java keyword">public</code> <code class="java plain">CoreServlet() { </code></div>
<div class="line number17 index16 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java keyword">super</code><code class="java plain">(); </code></div>
<div class="line number18 index17 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java plain">} </code></div>
<div class="line number19 index18 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java keyword">public</code> <code class="java keyword">void</code> <code class="java plain">destroy() { </code></div>
<div class="line number20 index19 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java keyword">super</code><code class="java plain">.destroy();&nbsp; </code></div>
<div class="line number21 index20 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java plain">} </code></div>
<div class="line number22 index21 alt1"><code class="java spaces">&nbsp;</code>&nbsp;</div>
<div class="line number23 index22 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java preprocessor">/** </code></div>
<div class="line number24 index23 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java preprocessor">* 验证url和token </code></div>
<div class="line number25 index24 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java preprocessor">*/</code></div>
<div class="line number26 index25 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java keyword">public</code> <code class="java keyword">void</code> <code class="java plain">doGet(HttpServletRequest request, HttpServletResponse response) </code></div>
<div class="line number27 index26 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java keyword">throws</code> <code class="java plain">ServletException, IOException { </code></div>
<div class="line number28 index27 alt1"><code class="java spaces">&nbsp;</code>&nbsp;</div>
<div class="line number29 index28 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java comments">// 微信加密签名 </code></div>
<div class="line number30 index29 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java plain">String signature = request.getParameter(</code><code class="java string">"signature"</code><code class="java plain">); </code></div>
<div class="line number31 index30 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java comments">// 时间戮 </code></div>
<div class="line number32 index31 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java plain">String timestamp = request.getParameter(</code><code class="java string">"timestamp"</code><code class="java plain">); </code></div>
<div class="line number33 index32 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java comments">// 随机数 </code></div>
<div class="line number34 index33 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java plain">String nonce = request.getParameter(</code><code class="java string">"nonce"</code><code class="java plain">); </code></div>
<div class="line number35 index34 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java comments">// 随机字符串 </code></div>
<div class="line number36 index35 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java plain">String echostr = request.getParameter(</code><code class="java string">"echostr"</code><code class="java plain">);&nbsp; </code></div>
<div class="line number37 index36 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code>&nbsp;</div>
<div class="line number38 index37 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java plain">PrintWriter out = response.getWriter(); </code></div>
<div class="line number39 index38 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java comments">// 通过检验 signature 对请求进行校验，若校验成功则原样返回 echostr，表示接入成功，否则接入失败 </code></div>
<div class="line number40 index39 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java keyword">if</code><code class="java plain">(SignUtil.checkSignature(signature, timestamp, nonce)){ </code></div>
<div class="line number41 index40 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java plain">out.print(echostr); </code></div>
<div class="line number42 index41 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java plain">} </code></div>
<div class="line number43 index42 alt2"><code class="java spaces">&nbsp;</code>&nbsp;</div>
<div class="line number44 index43 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java plain">out.close(); </code></div>
<div class="line number45 index44 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java plain">out = </code><code class="java keyword">null</code><code class="java plain">;&nbsp; </code></div>
<div class="line number46 index45 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java plain">} </code></div>
<div class="line number47 index46 alt2"><code class="java spaces">&nbsp;</code>&nbsp;</div>
<div class="line number48 index47 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java preprocessor">/** </code></div>
<div class="line number49 index48 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java preprocessor">*用户向公众平台发信息并自动返回信息 </code></div>
<div class="line number50 index49 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java preprocessor">*/</code></div>
<div class="line number51 index50 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java keyword">public</code> <code class="java keyword">void</code> <code class="java plain">doPost(HttpServletRequest request, HttpServletResponse response) </code></div>
<div class="line number52 index51 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java keyword">throws</code> <code class="java plain">ServletException, IOException { </code></div>
<div class="line number53 index52 alt2"><code class="java spaces">&nbsp;</code>&nbsp;</div>
<div class="line number54 index53 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code>&nbsp;</div>
<div class="line number55 index54 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java plain">} </code></div>
<div class="line number56 index55 alt1"><code class="java spaces">&nbsp;</code>&nbsp;</div>
<div class="line number57 index56 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java keyword">public</code> <code class="java keyword">void</code> <code class="java plain">init() </code><code class="java keyword">throws</code> <code class="java plain">ServletException { </code></div>
<div class="line number58 index57 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java plain">} </code></div>
<div class="line number59 index58 alt2"><code class="java spaces">&nbsp;</code>&nbsp;</div>
<div class="line number60 index59 alt1"><code class="java plain">}</code></div></div></td></tr></tbody></table></div></div>其中调用到了SignUtil类的checkSignature方法，下面是SignUtil.java类.注意：其中一个静态属性token的值，在最后一步需要用到来验证的. 
<p>&nbsp;</p>
<p>&nbsp;</p>
<div>
<div id="highlighter_634753" class="syntaxhighlighter  java ie">
<div class="toolbar"><span><a class="toolbar_item command_help help" href="http://www.2cto.com/kf/201405/299487.html#">?</a></span></div>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td class="gutter">
<div class="line number1 index0 alt2">1</div>
<div class="line number2 index1 alt1">2</div>
<div class="line number3 index2 alt2">3</div>
<div class="line number4 index3 alt1">4</div>
<div class="line number5 index4 alt2">5</div>
<div class="line number6 index5 alt1">6</div>
<div class="line number7 index6 alt2">7</div>
<div class="line number8 index7 alt1">8</div>
<div class="line number9 index8 alt2">9</div>
<div class="line number10 index9 alt1">10</div>
<div class="line number11 index10 alt2">11</div>
<div class="line number12 index11 alt1">12</div>
<div class="line number13 index12 alt2">13</div>
<div class="line number14 index13 alt1">14</div>
<div class="line number15 index14 alt2">15</div>
<div class="line number16 index15 alt1">16</div>
<div class="line number17 index16 alt2">17</div>
<div class="line number18 index17 alt1">18</div>
<div class="line number19 index18 alt2">19</div>
<div class="line number20 index19 alt1">20</div>
<div class="line number21 index20 alt2">21</div>
<div class="line number22 index21 alt1">22</div>
<div class="line number23 index22 alt2">23</div>
<div class="line number24 index23 alt1">24</div>
<div class="line number25 index24 alt2">25</div>
<div class="line number26 index25 alt1">26</div>
<div class="line number27 index26 alt2">27</div>
<div class="line number28 index27 alt1">28</div>
<div class="line number29 index28 alt2">29</div>
<div class="line number30 index29 alt1">30</div>
<div class="line number31 index30 alt2">31</div>
<div class="line number32 index31 alt1">32</div>
<div class="line number33 index32 alt2">33</div>
<div class="line number34 index33 alt1">34</div>
<div class="line number35 index34 alt2">35</div>
<div class="line number36 index35 alt1">36</div>
<div class="line number37 index36 alt2">37</div>
<div class="line number38 index37 alt1">38</div>
<div class="line number39 index38 alt2">39</div>
<div class="line number40 index39 alt1">40</div>
<div class="line number41 index40 alt2">41</div>
<div class="line number42 index41 alt1">42</div>
<div class="line number43 index42 alt2">43</div>
<div class="line number44 index43 alt1">44</div>
<div class="line number45 index44 alt2">45</div>
<div class="line number46 index45 alt1">46</div>
<div class="line number47 index46 alt2">47</div>
<div class="line number48 index47 alt1">48</div>
<div class="line number49 index48 alt2">49</div>
<div class="line number50 index49 alt1">50</div>
<div class="line number51 index50 alt2">51</div>
<div class="line number52 index51 alt1">52</div>
<div class="line number53 index52 alt2">53</div>
<div class="line number54 index53 alt1">54</div>
<div class="line number55 index54 alt2">55</div>
<div class="line number56 index55 alt1">56</div>
<div class="line number57 index56 alt2">57</div>
<div class="line number58 index57 alt1">58</div>
<div class="line number59 index58 alt2">59</div>
<div class="line number60 index59 alt1">60</div>
<div class="line number61 index60 alt2">61</div>
<div class="line number62 index61 alt1">62</div>
<div class="line number63 index62 alt2">63</div>
<div class="line number64 index63 alt1">64</div>
<div class="line number65 index64 alt2">65</div>
<div class="line number66 index65 alt1">66</div>
<div class="line number67 index66 alt2">67</div>
<div class="line number68 index67 alt1">68</div>
<div class="line number69 index68 alt2">69</div>
<div class="line number70 index69 alt1">70</div>
<div class="line number71 index70 alt2">71</div>
<div class="line number72 index71 alt1">72</div>
<div class="line number73 index72 alt2">73</div>
<div class="line number74 index73 alt1">74</div>
<div class="line number75 index74 alt2">75</div></td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2"><code class="java keyword">package</code> <code class="java plain">wx.sunl.util; </code></div>
<div class="line number2 index1 alt1"><code class="java spaces">&nbsp;</code>&nbsp;</div>
<div class="line number3 index2 alt2"><code class="java keyword">import</code> <code class="java plain">java.security.MessageDigest; </code></div>
<div class="line number4 index3 alt1"><code class="java keyword">import</code> <code class="java plain">java.security.NoSuchAlgorithmException; </code></div>
<div class="line number5 index4 alt2"><code class="java keyword">import</code> <code class="java plain">java.util.Arrays; </code></div>
<div class="line number6 index5 alt1"><code class="java spaces">&nbsp;</code>&nbsp;</div>
<div class="line number7 index6 alt2"><code class="java keyword">public</code> <code class="java keyword">class</code> <code class="java plain">SignUtil { </code></div>
<div class="line number8 index7 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java preprocessor">/** </code></div>
<div class="line number9 index8 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java preprocessor">* 与接口配置信息中的 token 要一致，这里赋予什么值，在接口配置信息中的Token就要填写什么值， </code></div>
<div class="line number10 index9 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java preprocessor">* 两边保持一致即可，建议用项目名称、公司名称缩写等，我在这里用的是项目名称weixinface </code></div>
<div class="line number11 index10 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java preprocessor">*/</code></div>
<div class="line number12 index11 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java keyword">private</code> <code class="java keyword">static</code> <code class="java plain">String token = </code><code class="java string">"weixintest"</code><code class="java plain">; </code></div>
<div class="line number13 index12 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code>&nbsp;</div>
<div class="line number14 index13 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java preprocessor">/** </code></div>
<div class="line number15 index14 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java preprocessor">* 验证签名 </code></div>
<div class="line number16 index15 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java preprocessor">* @param signature </code></div>
<div class="line number17 index16 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java preprocessor">* @param timestamp </code></div>
<div class="line number18 index17 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java preprocessor">* @param nonce </code></div>
<div class="line number19 index18 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java preprocessor">* @return </code></div>
<div class="line number20 index19 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java preprocessor">*/</code></div>
<div class="line number21 index20 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java keyword">public</code> <code class="java keyword">static</code> <code class="java keyword">boolean</code> <code class="java plain">checkSignature(String signature, String timestamp, String nonce){ </code></div>
<div class="line number22 index21 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java plain">String[] arr = </code><code class="java keyword">new</code> <code class="java plain">String[]{token, timestamp, nonce}; </code></div>
<div class="line number23 index22 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java comments">// 将 token, timestamp, nonce 三个参数进行字典排序 </code></div>
<div class="line number24 index23 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java plain">Arrays.sort(arr); </code></div>
<div class="line number25 index24 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java plain">StringBuilder content = </code><code class="java keyword">new</code> <code class="java plain">StringBuilder(); </code></div>
<div class="line number26 index25 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java keyword">for</code><code class="java plain">(</code><code class="java keyword">int</code> <code class="java plain">i = </code><code class="java value">0</code><code class="java plain">; i &lt; arr.length; i++){ </code></div>
<div class="line number27 index26 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java plain">content.append(arr[i]); </code></div>
<div class="line number28 index27 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java plain">} </code></div>
<div class="line number29 index28 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java plain">MessageDigest md = </code><code class="java keyword">null</code><code class="java plain">; </code></div>
<div class="line number30 index29 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java plain">String tmpStr = </code><code class="java keyword">null</code><code class="java plain">; </code></div>
<div class="line number31 index30 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code>&nbsp;</div>
<div class="line number32 index31 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java keyword">try</code> <code class="java plain">{ </code></div>
<div class="line number33 index32 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java plain">md = MessageDigest.getInstance(</code><code class="java string">"SHA-1"</code><code class="java plain">); </code></div>
<div class="line number34 index33 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java comments">// 将三个参数字符串拼接成一个字符串进行 shal 加密 </code></div>
<div class="line number35 index34 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java keyword">byte</code><code class="java plain">[] digest = md.digest(content.toString().getBytes()); </code></div>
<div class="line number36 index35 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java plain">tmpStr = byteToStr(digest); </code></div>
<div class="line number37 index36 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java plain">} </code><code class="java keyword">catch</code> <code class="java plain">(NoSuchAlgorithmException e) { </code></div>
<div class="line number38 index37 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java comments">// TODO Auto-generated catch block </code></div>
<div class="line number39 index38 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java plain">e.printStackTrace(); </code></div>
<div class="line number40 index39 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java plain">} </code></div>
<div class="line number41 index40 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java plain">content = </code><code class="java keyword">null</code><code class="java plain">; </code></div>
<div class="line number42 index41 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java comments">// 将sha1加密后的字符串可与signature对比，标识该请求来源于微信 </code></div>
<div class="line number43 index42 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java keyword">return</code> <code class="java plain">tmpStr != </code><code class="java keyword">null</code> <code class="java plain">? tmpStr.equals(signature.toUpperCase()): </code><code class="java keyword">false</code><code class="java plain">; </code></div>
<div class="line number44 index43 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java plain">} </code></div>
<div class="line number45 index44 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code>&nbsp;</div>
<div class="line number46 index45 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java preprocessor">/** </code></div>
<div class="line number47 index46 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java preprocessor">* 将字节数组转换为十六进制字符串 </code></div>
<div class="line number48 index47 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java preprocessor">* @param digest </code></div>
<div class="line number49 index48 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java preprocessor">* @return </code></div>
<div class="line number50 index49 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java preprocessor">*/</code></div>
<div class="line number51 index50 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java keyword">private</code> <code class="java keyword">static</code> <code class="java plain">String byteToStr(</code><code class="java keyword">byte</code><code class="java plain">[] digest) { </code></div>
<div class="line number52 index51 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java comments">// TODO Auto-generated method stub </code></div>
<div class="line number53 index52 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java plain">String strDigest = </code><code class="java string">""</code><code class="java plain">; </code></div>
<div class="line number54 index53 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java keyword">for</code><code class="java plain">(</code><code class="java keyword">int</code> <code class="java plain">i = </code><code class="java value">0</code><code class="java plain">; i &lt; digest.length; i++){ </code></div>
<div class="line number55 index54 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java plain">strDigest += byteToHexStr(digest[i]); </code></div>
<div class="line number56 index55 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java plain">} </code></div>
<div class="line number57 index56 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java keyword">return</code> <code class="java plain">strDigest; </code></div>
<div class="line number58 index57 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java plain">} </code></div>
<div class="line number59 index58 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code>&nbsp;</div>
<div class="line number60 index59 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java preprocessor">/** </code></div>
<div class="line number61 index60 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java preprocessor">* 将字节转换为十六进制字符串 </code></div>
<div class="line number62 index61 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java preprocessor">* @param b </code></div>
<div class="line number63 index62 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java preprocessor">* @return </code></div>
<div class="line number64 index63 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java preprocessor">*/</code></div>
<div class="line number65 index64 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java keyword">private</code> <code class="java keyword">static</code> <code class="java plain">String byteToHexStr(</code><code class="java keyword">byte</code> <code class="java plain">b) { </code></div>
<div class="line number66 index65 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java comments">// TODO Auto-generated method stub </code></div>
<div class="line number67 index66 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java keyword">char</code><code class="java plain">[] Digit = {</code><code class="java string">'0'</code><code class="java plain">, </code><code class="java string">'1'</code><code class="java plain">, </code><code class="java string">'2'</code><code class="java plain">, </code><code class="java string">'3'</code><code class="java plain">, </code><code class="java string">'4'</code><code class="java plain">, </code><code class="java string">'5'</code><code class="java plain">, </code><code class="java string">'6'</code><code class="java plain">, </code><code class="java string">'7'</code><code class="java plain">, </code><code class="java string">'8'</code><code class="java plain">, </code><code class="java string">'9'</code><code class="java plain">, </code><code class="java string">'A'</code><code class="java plain">, </code><code class="java string">'B'</code><code class="java plain">, </code><code class="java string">'C'</code><code class="java plain">, </code><code class="java string">'D'</code><code class="java plain">, </code><code class="java string">'E'</code><code class="java plain">, </code><code class="java string">'F'</code><code class="java plain">}; </code></div>
<div class="line number68 index67 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java keyword">char</code><code class="java plain">[] tempArr = </code><code class="java keyword">new</code> <code class="java keyword">char</code><code class="java plain">[</code><code class="java value">2</code><code class="java plain">]; </code></div>
<div class="line number69 index68 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java plain">tempArr[</code><code class="java value">0</code><code class="java plain">] = Digit[(b &gt;&gt;&gt; </code><code class="java value">4</code><code class="java plain">) &amp; </code><code class="java value">0X0F</code><code class="java plain">]; </code></div>
<div class="line number70 index69 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java plain">tempArr[</code><code class="java value">1</code><code class="java plain">] = Digit[b &amp; </code><code class="java value">0X0F</code><code class="java plain">]; </code></div>
<div class="line number71 index70 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code>&nbsp;</div>
<div class="line number72 index71 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java plain">String s = </code><code class="java keyword">new</code> <code class="java plain">String(tempArr); </code></div>
<div class="line number73 index72 alt2"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java keyword">return</code> <code class="java plain">s; </code></div>
<div class="line number74 index73 alt1"><code class="java spaces">&nbsp;&nbsp;&nbsp;&nbsp;</code><code class="java plain">} </code></div>
<div class="line number75 index74 alt2"><code class="java plain">}</code></div></div></td></tr></tbody></table></div></div><br />
<p><strong>4.代码已经写完了，现在来提交代码到svn.如果没有svn客户端工具，那首先<a class="keylink" href="http://www.2cto.com/soft" target="_blank">下载</a>（svn版本工具）安装。打开svn</strong></p>
<p><img style="width: 369px; height: 127px" alt="\" src="http://www.2cto.com/uploadfile/Collfiles/20140510/2014051009050023.jpg" /><br /></p>
<p>4.1.这里的url去百度开放云平台去这里复制</p>
<p><img style="width: 630px; height: 293px" alt="\" src="http://www.2cto.com/uploadfile/Collfiles/20140510/2014051009050125.jpg" /><br /></p>
<p>4.2.粘贴url,打开svn，会看到服务器的2个文件</p>
<p><img style="width: 630px; height: 484px" alt="\" src="http://www.2cto.com/uploadfile/Collfiles/20140510/2014051009050126.jpg" /><br /></p>
<p>&nbsp;</p>
<p>4.3.代码提交到svn 首先删掉root.war</p>
<p><img style="width: 595px; height: 458px" alt="\" src="http://www.2cto.com/uploadfile/Collfiles/20140510/2014051009050227.jpg" /><br /></p>
<p>4.4.java web工程打包成war包，取名ROOT.war,然后提交到svn</p>
<p><img style="width: 525px; height: 550px" alt="\" src="http://www.2cto.com/uploadfile/Collfiles/20140510/2014051009050329.jpg" /><br /></p>
<p>&nbsp;</p>
<p>4.5.然后将这个war包提交到svn</p>
<p><img style="width: 630px; height: 424px" alt="\" src="http://www.2cto.com/uploadfile/Collfiles/20140510/2014051009050330.jpg" /><br /></p>
<p><br /></p>
<p>4.6.如果提交成功了，百度开放云平台会检测到有新版本产生，选中应用，点击&#8220;发布设置&#8221;</p>
<p><img style="width: 630px; height: 341px" alt="\" src="http://www.2cto.com/uploadfile/Collfiles/20140510/2014051009050431.jpg" /><br /></p>
<p><br /></p>
<p>4.7.发布新版本</p>
<p><img style="width: 630px; height: 558px" alt="\" src="http://www.2cto.com/uploadfile/Collfiles/20140510/2014051009050432.jpg" /><br /></p>
<p><br /></p>
<p><strong>5.发布成功后，测试是否部署成功？</strong></p>
<p><br /></p>
<p>5.1.如果看到这个，离成功只差一步啦。&lt;喎�"http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink"&gt;vc</a>D4KPHA+PGltZyBzcmM9"http://www.2cto.com/uploadfile/Collfiles/20140510/2014051009050433.jpg" alt="\"&gt;<br /></p>
<p><br /></p>
<p>5.5.在域名后边加上请求我们刚刚servlet的请求路径,上边的例子是/CoreServlet,如果报505错误（why?因为那几个参数都是空的），说明部署成功了</p>
<p><img style="width: 518px; height: 522px" alt="\" src="http://www.2cto.com/uploadfile/Collfiles/20140510/2014051009050434.jpg" /><br /></p>
<p><br /></p>
<p><strong>6.最后一步，填写Url 和 Token来验证 成为开发者。Url：百度应用的域名+请求servlet的路径例如：http://weixintest11.duapp.com/CoreServlet.Token是在程序中自定义的值（在SignUtil.java中定义）</strong></p>
<p><img style="width: 481px; height: 215px" alt="" src="http://www.2cto.com/uploadfile/Collfiles/20140510/2014051009050535.jpg" /><br /></p>
<p><br /></p>
<p><strong>欢迎吐槽！！！</strong></p><img src ="http://www.blogjava.net/jjshcc/aggbug/418426.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jjshcc/" target="_blank">Eric_jiang</a> 2014-09-30 11:52 <a href="http://www.blogjava.net/jjshcc/archive/2014/09/30/418426.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>