<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_白天有雨</title><subtitle type="text">此处应该有掌声</subtitle><id>http://feed.cnblogs.com/blog/u/13456/rss</id><updated>2011-10-08T08:49:17Z</updated><author><name>卓如</name><uri>http://www.cnblogs.com/zhuor/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zhuor/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/13456/rss"/><entry><id>http://www.cnblogs.com/zhuor/archive/2011/10/08/2202291.html</id><title type="text">心理课堂：对付拖延症(转)</title><summary type="text">谨以此文，与小站所有童鞋共勉。^_^ 上大学以后，我开始有了拖延的毛病。立下目标无数，但时常却动力奇缺，常常在网上浏览着各色的小说和帖子，或是玩很无聊的弱智在线小游戏，却不愿碰专业书本或文献一下，甚至哪怕deadline就在几天之后，只有在deadline之前一点点时间才会因紧迫感而开始着手学习任务。这样下来，学业上总体来说算是马马虎虎，但却离自己的理想越来越远。总之，就是无法完全地上进，又不愿彻底地堕落。 拖延的基础，实际上是对自身很高甚至不切实际的期望。如果说完成任务是走过一块一人宽、十米长的厚木板，那么当它放在地面上时，几乎人人都可以轻松地走过。但对结果的高期望则像是将这块木板架到了两座</summary><published>2011-10-08T08:49:00Z</published><updated>2011-10-08T08:49:00Z</updated><author><name>卓如</name><uri>http://www.cnblogs.com/zhuor/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zhuor/archive/2011/10/08/2202291.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zhuor/archive/2011/10/08/2202291.html"/><content type="html">&lt;span &gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;谨以此文，与小站所有童鞋共勉。^_^ &lt;br /&gt;&lt;br /&gt;上大学以后，我开始有了拖延的毛病。立下目标无数，但时常却动力奇缺，常常在网上浏览着各色的小说和帖子，或是玩很无聊的弱智在线小游戏，却不愿碰专业书本或文献一下，甚至哪怕deadline就在几天之后，只有在deadline之前一点点时间才会因紧迫感而开始着手学习任务。这样下来，学业上总体来说算是马马虎虎，但却离自己的理想越来越远。总之，就是无法完全地上进，又不愿彻底地堕落。 &lt;br /&gt;&lt;br /&gt;拖延的基础，实际上是对自身很高甚至不切实际的期望。如果说完成任务是走过一块一人宽、十米长的厚木板，那么当它放在地面上时，几乎人人都可以轻松地走过。但对结果的高期望则像是将这块木板架到了两座高楼间十层楼高的地方，于是我们会害怕掉下去，即害怕失败或害怕成功（比如我有时偷偷希望实验不要成功，这样我就可以不用面对之后更大强度的后续实验，其实是害怕失败的一种变体），于是我们甚至不敢向前迈上一步。而deadline则是身后的一团火，当它离我们足够近时，害怕被烧着的恐惧感战胜了对掉下去的恐惧感，于是我们一下子冲了过去，在deadline前赶完了任务，尽管质量很难说。 &lt;br /&gt;&lt;br /&gt;更可怕的是，很多拖延的人（包括我自己）甚至很享受那种deadline过后突然一下放松的感觉，而且拖延的结果有时反而挺好（比如我本科时写实验报告，如果我拖到最后，我往往可能因为能够和其他人讨论并参考其他人的观点而比我先完成要写得更全面更好）。这种时候，我会在心里表扬自己很有&amp;#8220;效率&amp;#8221;。同时，长期这样下来，尽管我不愿承认，但我潜意识里确实觉得自己如果花了很多时间成绩却平平，会是一件非常丢脸的事情。于是这一切的一切，都再次强化的拖延&amp;#8212;&amp;#8212; 即使结果不好，我也可以说，那是因为我没尽全力，如果我真正努力，肯定会结果很好的（心理学上的高自尊人格）。 &lt;br /&gt;&lt;br /&gt;但我们不能永远靠放火来逼自己走过木板，那样的话，总会有烧着自己的一天；而且，那种压抑的焦虑感和对自己不满意的感觉也并不令人愉快。因此，最好的办法是将木板的高度降低&amp;#8212;&amp;#8212;不要对自己的结果（比如分数）太高的要求，认真完成就好。由于我们的天资和其它能力的限制，也许即使我们竭尽全力也无法像某些出众人物一样做得那么好，但不管怎么样，绝大多数情况下，尽力的结果都会比我们不去努力要来得好得多，不是吗？ &lt;br /&gt;&lt;br /&gt;对此在豆瓣的那个帖子里有一个非常有趣的方法。那位作者将一篇论文拖了几个月之久都不愿开写，她的心理师让她不要管好坏，以她可以写出的最差的论文为目标写一篇出来作为试验。作者照做了，然后惊讶地发现她写出来的&amp;#8220;最差&amp;#8221;的文章竟然挺让自己满意的，感觉稍做修改就可以交给导师过目了。当然，有时写出来的初稿和论文要求还是有差距的，比如要求12页但初稿只有5页。这种情况下作者就用了心理师教她的另一个方法：每次工作一个小时，目标是让论文多一页，同样以&amp;#8220;最差&amp;#8221;为目标。这个方法实际就是大大降低了拖延者做事的心理成本和负担，相当于把&amp;#8220;木板&amp;#8221;放到了&amp;#8220;地面&amp;#8221;上。不妨一试。 &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;人的完美倾向，严重点就是完美主义，在拖延中也起了很大作用。当我想起幼时的远大理想并希望为之努力时，我只要想起我的同学中无处不在的&amp;#8220;牛人&amp;#8221;，便会觉得自己已经浪费了太多时间，而且别人现在不仅比我强得多，更因为他自身的优势而占有了比我更好的资源，所以我现在即使努力估计也赶不上他了，更别提什么远大的理想了，于是就又开始了拖延。 &lt;br /&gt;&lt;br /&gt;事实上，这就像是一场马拉松，你在开始因为种种原因落后于别人不少，于是你就开始纠结自己到底有没有跑下去的必要，却不努力去跑，于是被拉得更远。这时，你望着遥远的终点，感觉很绝望，都不想跑下去了。这时，如果你不去看不去想重点，也不去想别人，只看着自己的脚下跑&amp;#8212;&amp;#8212;&amp;#8220;管它呢，我先跑过这个小土丘再说。&amp;#8221;就这样一个小目标一个小目标地跑，最终你一定会跑到终点线，那时你也许会发现，你并不是最慢的，甚至是很不错的。所以，专注于你努力的过程而非最后的结果，为你认真学习了一个下午或认真做了一个实验而不是最后考试的那个A或一个漂亮的实验结果而表扬自己，你会发现完成工作其实不怎么难。 &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;另外，专注于当下对拖延者来说也是很需要注意的一个地方。这里说的专注于当下，不是指专注于你现在脑子里的想法和情绪，而是专注于你现在在做的或选择要做的事情。其实，很多拖延的人恰恰就是太过关注自己一时的情绪，比如觉得自己不开心了，得放松一下，上上网&amp;#8230;&amp;#8230;然后就开始了拖延。其实从心理学角度来说，过于关注自己一时的情绪是不懂得推迟满足感的一种表现，就像小孩子想要一个玩具就非要马上得到不可一样，这样的做法会大大削弱一个人的自制力。而且，心理学实验表明，满足自己一时的情绪需求并非最佳策略，从长期角度上来讲，它会降低一个人的自我满足感和幸福感而非增加，想想因为玩乐休闲而拖延了工作后自己的负罪感和焦虑感就知道了。 &lt;br /&gt;&lt;br /&gt;在这个方面，我个人认为森田疗法的理念是很适用的。具体而言，就是不去理会那些打搅你的情绪波动（比如对自己说：&amp;#8220;你要郁闷就郁闷吧，不管你了。&amp;#8221;然后就不理会了），顺其自然，专心做你要做的事情。就像一颗小石子投入湖中，会泛起一圈圈涟漪，你若不理，湖面最终会自己平静下来；倘若你过于注意那颗小石子，试图把它捞出来，反而会激起更大的波澜，使湖面不得平静。豆瓣那个帖子的作者提供了一个方法，我觉得也是很有用的：把你当时因为一时情绪想要做的事情（比如上网、玩游戏、看电影、看小说等等）记下来，告诉自己等你做完工作就去做那些事情，然后就专心工作，等到工作结束再去做记下的事情。 &lt;br /&gt;&lt;br /&gt;此外，不要为未来过度操心 也是专注当下的一个方面。这点很容易理解，我就不在此赘言了。 &lt;br /&gt;&lt;br /&gt;同时，对于已经发生的不愉快的事情，或是对自己过去行为的不满，面对和接受好了，不必逃避。但面对和接受不是放任自流，而是不再沉浸于自责、痛苦等负面情绪中，客观地更好地理解当下的状况，进而为以后做打算。这一点可以和前文提到的&amp;#8220;马拉松&amp;#8221;的例子联系起来，只有真正面对和接受了你落后于别人的事实，你才不会为&amp;#8220;我想得第一可是却落后别人那么多&amp;#8221;之类的想法而纠结，进而才能以现实为基础，踏踏实实地努力去跑。 &lt;br /&gt;&lt;br /&gt;另外，在看书的时候（当然也有其它时候），很多人都常有&amp;#8220;刚才看了好几页却不知道讲了些什么&amp;#8221;的&amp;#8220;不自主飞翔&amp;#8221;的神游体验。对此，养成发现新事物的习惯，像初生的婴儿一样去看世界，是很有好处的。无论在什么环境中，时刻注意那些熟悉的东西有什么变化，比如看书，就可以注意想想这书里讲的和我以前知道的有什么不同又有什么联系、有什么很有意思的地方等等，慢慢地，就能做到专注于当下而不至于迷失。 &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;战胜拖延，追根究底，还是要改变自己的思维方式。这并不容易，但不是不可能。改变思维方式，尤其是改变潜意识，最重要的是要改变自我对话的方式。下面是一些自我对话的tips（括号里是要丢弃的自我对话方式）： &lt;br /&gt;&lt;br /&gt;1.我选择/我想要&amp;#8230;&amp;#8230; （vs.我必须/我一定得&amp;#8230;&amp;#8230;） &lt;br /&gt;&lt;br /&gt;2.这个任务我可以每次做一小步 （vs.这个任务太大了） &lt;br /&gt;&lt;br /&gt;3.我今天要开始做&amp;#8230;&amp;#8230; （vs.我今天必须完成&amp;#8230;&amp;#8230;） &lt;br /&gt;&lt;br /&gt;4.我也可以是平凡人 （vs.我必须完美/出类拔萃） &lt;br /&gt;&lt;br /&gt;5.我一定要休息娱乐/休息娱乐是正常生活的一部分 （vs.我没空休息娱乐/休息娱乐就是偷懒） &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;我想大多数有拖延情况的人也许都还没到严重成&amp;#8220;症&amp;#8221;的地步，但也或多或少地被它影响了生活，影响了对心中理想的追寻。克服一个问题并不简单，需要自己给自己很多的支持与鼓励，期间也许会有许多的反复，但只要我们的大方向是好的，我们就该肯定自己。 &lt;br /&gt;&lt;br /&gt;&amp;#8220;认识到眼前残酷 （这个词程度太深，但我想不出换什么好）的现实，同时又看到未来的光明与希望。&amp;#8221;这是我一直很欣赏的对生活的态度。&lt;img src="http://www.cnblogs.com/zhuor/aggbug/2202291.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/zhuor/archive/2011/10/08/2202291.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/zhuor/archive/2011/09/26/2191214.html</id><title type="text">Ado方式导入excel混用数据类型引起数据缺失问题解决方法</title><summary type="text">1.设置HDR=NO; IMEX=1	参数HDR的值：	HDR=Yes，这代表第一行是标题，不做为数据使用 ，如果用HDR=NO，则表示第一行不是标题，做为数据来使用。系统默认的是YES参数IMEXIMEX ( IMport EXport mode )设置当 IMEX=0 时为“汇出模式”，这个模式开启的 Excel 档案只能用来做“写入”用途。当 IMEX=1 时为“汇入模式”，这个模式开启的 Excel 档案只能用来做“读取”用途。当 IMEX=2 时为“连結模式”，这个模式开启的 Excel 档案可同时支援“读取”与“写入”用途。2. 修改注册表， 设置 TypeGuessRows 为 </summary><published>2011-09-26T02:01:00Z</published><updated>2011-09-26T02:01:00Z</updated><author><name>卓如</name><uri>http://www.cnblogs.com/zhuor/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zhuor/archive/2011/09/26/2191214.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zhuor/archive/2011/09/26/2191214.html"/><content type="html">&lt;div&gt;&#xD;
&lt;div&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;strong&gt;1.设置HDR=NO; IMEX=1&lt;/strong&gt;&lt;span style="white-space:pre"&gt;	&lt;/span&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;参数HDR的值：&lt;/div&gt;&lt;div&gt;&lt;span style="white-space:pre"&gt;	&lt;/span&gt;HDR=Yes，这代表第一行是标题，不做为数据使用 ，如果用HDR=NO，则表示第一行不是标题，做为数据来使用。系统默认的是YES&lt;/div&gt;&lt;div&gt;参数&amp;nbsp;IMEX&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;IMEX ( IMport EXport mode )设置&lt;/div&gt;&lt;div&gt;当 IMEX=0 时为&amp;#8220;汇出模式&amp;#8221;，这个模式开启的 Excel 档案只能用来做&amp;#8220;写入&amp;#8221;用途。&lt;/div&gt;&lt;div&gt;当 IMEX=1 时为&amp;#8220;汇入模式&amp;#8221;，这个模式开启的 Excel 档案只能用来做&amp;#8220;读取&amp;#8221;用途。&lt;/div&gt;&lt;div&gt;当 IMEX=2 时为&amp;#8220;连結模式&amp;#8221;，这个模式开启的 Excel 档案可同时支援&amp;#8220;读取&amp;#8221;与&amp;#8220;写入&amp;#8221;用途。&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;2. 修改注册表， 设置 TypeGuessRows 为 0 &amp;nbsp;&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;默认情况下，驱动程序会扫描前 8 行数据，来对数据类型进行采样。设置为 0 ，将对列的所有行进行扫描，如果前八行采样数据都是数值类型的话，设置 IMEX = 1 也不会将剩下的行的默认数据类型转换为文本，它将保留数值类型，也就是把整个列当成数字类型对待。 因此，要想得到完整的数据，需要修改注册表的设置 TypeGuessRows 为 0。TypeGuessRows 在注册表的位置：&lt;/div&gt;&lt;div&gt;[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel]&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Windows 7等 64 系统：&lt;/div&gt;&lt;div&gt;[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Jet\4.0\Engines\Excel]&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;3. 在单元格前面加'&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;设置 TypeGuessRows 为 0 将会导致性能的下降。IMEX=1 数据内容也能出现不正常的现象，比如长数字可能会出现科学计数法的格式显示。比较好的做法是导出前，对所有单元格进行处理，在单元格内容前面加 '。&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&#xD;
&lt;/div&gt;&lt;img src="http://www.cnblogs.com/zhuor/aggbug/2191214.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/zhuor/archive/2011/09/26/2191214.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/zhuor/archive/2011/09/09/2172486.html</id><title type="text">深入分析 Java 中的中文编码问题(转)</title><summary type="text">许 令波, Java 工程师, 淘宝网简介：编码问题一直困扰着开发人员，尤其在 Java 中更加明显，因为 Java 是跨平台语言，不同平台之间编码之间的切换较多。本文将向你详细介绍 Java 中编码问题出现的根本原因，你将了解到：Java 中经常遇到的几种编码格式的区别；Java 中经常需要编码的场景；出现中文问题的原因分析；在开发 Java web 程序时可能会存在编码的几个地方，一个 HTTP 请求怎么控制编码格式？如何避免出现中文问题？本文的标签：encoding,java,中的中文编码,字符,编码标记本文！发布日期：2011 年 7 月 06 日级别：中级访问情况10468 次浏览建</summary><published>2011-09-09T06:08:00Z</published><updated>2011-09-09T06:08:00Z</updated><author><name>卓如</name><uri>http://www.cnblogs.com/zhuor/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zhuor/archive/2011/09/09/2172486.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zhuor/archive/2011/09/09/2172486.html"/><content type="html">&lt;span  style="font-family: Simsun; line-height: normal; background-color: #ffffff; font-size: medium; "&gt;&lt;div id="dw-summary-article" style="width: 930px; background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ffffff), to(#ececec)); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; margin-top: 3px; border-bottom-color: #cccccc; border-bottom-style: solid; border-bottom-width: 1px; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;div  style="overflow-x: visible; overflow-y: visible; height: 180px; "&gt;&lt;div  id="" style="width: 500px; float: left; padding-left: 14px; margin-bottom: 10px; "&gt;&lt;div  id="" style="font-size: 0.76em; font-family: arial, sans-serif; "&gt;&lt;a  rel="#authortip1" href="http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/index.html#author1" title="" style="color: #4c6e94; "&gt;许 令波&lt;/a&gt;, Java 工程师, 淘宝网&lt;/div&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; font-size: 0.76em; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; padding-top: 0em; padding-right: 0em; padding-bottom: 1em; padding-left: 0em; "&gt;&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; font-size: 0.76em; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; padding-top: 0em; padding-right: 0em; padding-bottom: 1em; padding-left: 0em; "&gt;&lt;strong&gt;简介：&lt;/strong&gt;&amp;nbsp;编码问题一直困扰着开发人员，尤其在 Java 中更加明显，因为 Java 是跨平台语言，不同平台之间编码之间的切换较多。本文将向你详细介绍 Java 中编码问题出现的根本原因，你将了解到：Java 中经常遇到的几种编码格式的区别；Java 中经常需要编码的场景；出现中文问题的原因分析；在开发 Java web 程序时可能会存在编码的几个地方，一个 HTTP 请求怎么控制编码格式？如何避免出现中文问题？&lt;/p&gt;&lt;div id="dw-tag-content" &gt;&lt;p style="font-family: arial, nsimsun, sans-serif; font-size: 0.76em; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; padding-top: 0em; padding-right: 0em; padding-bottom: 0px; padding-left: 0em; line-height: 14px; "&gt;&lt;strong style="font-size: 1em; font-weight: bold; "&gt;本文的标签：&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/index.html" style="color: #4c6e94; text-decoration: none; "&gt;encoding&lt;/a&gt;,&amp;nbsp;&lt;a href="http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/index.html" style="color: #4c6e94; text-decoration: none; "&gt;java&lt;/a&gt;,&amp;nbsp;&lt;a href="http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/index.html" style="color: #4c6e94; text-decoration: none; "&gt;中的中文编码&lt;/a&gt;,&amp;nbsp;&lt;a href="http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/index.html" style="color: #4c6e94; text-decoration: none; "&gt;字符&lt;/a&gt;,&amp;nbsp;&lt;a href="http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/index.html" style="color: #4c6e94; text-decoration: none; "&gt;编码&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;div id="dw-moretags-access"  style="position: absolute; left: -3000px; width: 500px; "&gt;&lt;/div&gt;&lt;p  style="font-family: arial, nsimsun, sans-serif; font-size: 0.76em; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; padding-top: 0em; padding-right: 0em; padding-bottom: 1em; padding-left: 0em; "&gt;&lt;/p&gt;&lt;div id="dw-tag-this"  style="background-image: url(http://dw1.s81c.com/developerworks/i/dwtag_icon_maverick.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; font-size: 0.76em; font-family: arial, sans-serif; display: inline; background-position: 2px 0px; background-repeat: no-repeat no-repeat; "&gt;&lt;a  href="http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/index.html#" style="color: #4c6e94; text-decoration: none; background-image: url(http://dw1.s81c.com/developerworks/i/dwtag_icon_maverick.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 19px; margin-left: 2px; margin-right: 18px; font-weight: bold !important; background-position: 0px 0px; background-repeat: no-repeat no-repeat; "&gt;标记本文！&lt;/a&gt;&lt;/div&gt;&lt;div id="interestShow"  style="display: inline; "&gt;&lt;/div&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; font-size: 0.76em; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; padding-top: 0em; padding-right: 0em; padding-bottom: 1em; padding-left: 0em; "&gt;&lt;/p&gt;&lt;/div&gt;&lt;div  style="width: 380px; float: right; padding-right: 10px; "&gt;&lt;p  style="font-family: arial, nsimsun, sans-serif; font-size: 0.76em; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; padding-top: 0em; padding-right: 0em; padding-bottom: 1em; padding-left: 0em; line-height: 18px; "&gt;&lt;strong&gt;发布日期：&lt;/strong&gt;&amp;nbsp;2011 年 7 月 06 日&amp;nbsp;&lt;br /&gt;&lt;strong&gt;级别：&lt;/strong&gt;&amp;nbsp;中级&amp;nbsp;&lt;br /&gt;&lt;strong&gt;访问情况&lt;/strong&gt;&amp;nbsp;10468 次浏览&amp;nbsp;&lt;br /&gt;&lt;strong&gt;建议：&lt;/strong&gt;&amp;nbsp;&lt;span id="nCmts"&gt;9&amp;nbsp;(&lt;a href="http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/index.html#icomments" style="color: #4c6e94; "&gt;查看或添加评论&lt;/a&gt;)&lt;/span&gt;&lt;/p&gt;&lt;div id="art-rating-widget" style="margin-top: -5px; margin-right: 0px; margin-bottom: 6px; margin-left: 0px; width: 370px; height: 20px; "&gt;&lt;a href="http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/index.html" style="color: #4c6e94; "&gt;&lt;img alt="1 star" title="点击评分 1 星" height="20" src="http://www.ibm.com/developerworks/js/artrating/avg-star-on.gif" width="20" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; " /&gt;&lt;/a&gt;&lt;a href="http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/index.html" style="color: #4c6e94; "&gt;&lt;img alt="2 stars" title="点击评分 2 星" height="20" src="http://www.ibm.com/developerworks/js/artrating/avg-star-on.gif" width="20" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; " /&gt;&lt;/a&gt;&lt;a href="http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/index.html" style="color: #4c6e94; "&gt;&lt;img alt="3 stars" title="点击评分 3 星" height="20" src="http://www.ibm.com/developerworks/js/artrating/avg-star-on.gif" width="20" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; " /&gt;&lt;/a&gt;&lt;a href="http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/index.html" style="color: #4c6e94; "&gt;&lt;img alt="4 stars" title="点击评分 4 星" height="20" src="http://www.ibm.com/developerworks/js/artrating/avg-star-on.gif" width="20" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; " /&gt;&lt;/a&gt;&lt;a href="http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/index.html" style="color: #4c6e94; "&gt;&lt;img alt="5 stars" title="点击评分 5 星" height="20" src="http://www.ibm.com/developerworks/js/artrating/avg-star-on.gif" width="20" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; " /&gt;&lt;/a&gt;&lt;span id="rateTxt" style="font-family: arial, sans-serif; font-size: 0.76em; vertical-align: 5px; "&gt;&amp;nbsp;平均分 （共 41 个评分 ）&lt;/span&gt;&lt;/div&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; font-size: 0.76em; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; padding-top: 0em; padding-right: 0em; padding-bottom: 1em; padding-left: 0em; "&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id="ibm-content-body" style="background-image: none; background-attachment: scroll; background-origin: initial; background-clip: initial; background-color: #ffffff; width: 930px; padding-top: 15px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; clear: both; background-position: 0px 0px; background-repeat: no-repeat no-repeat; "&gt;&lt;div id="ibm-content-main" style="float: left; clear: left; width: 710px; padding-left: 10px; "&gt;&lt;div  style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; width: 710px; "&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;a name="major1"&gt;&lt;span  style="font-size: 1.5em; font-weight: bold; "&gt;几种常见的编码格式&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;a name="minor1.1"&gt;&lt;span  style="font-size: 1.2em; font-weight: bold; "&gt;为什么要编码&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;不知道大家有没有想过一个问题，那就是为什么要编码？我们能不能不编码？要回答这个问题必须要回到计算机是如何表示我们人类能够理解的符号的，这些符号也就是我们人类使用的语言。由于人类的语言有太多，因而表示这些语言的符号太多，无法用计算机中一个基本的存储单元&amp;#8212;&amp;#8212; byte 来表示，因而必须要经过拆分或一些翻译工作，才能让计算机能理解。我们可以把计算机能够理解的语言假定为英语，其它语言要能够在计算机中使用必须经过一次翻译，把它翻译成英语。这个翻译的过程就是编码。所以可以想象只要不是说英语的国家要能够使用计算机就必须要经过编码。这看起来有些霸道，但是这就是现状，这也和我们国家现在在大力推广汉语一样，希望其它国家都会说汉语，以后其它的语言都翻译成汉语，我们可以把计算机中存储信息的最小单位改成汉字，这样我们就不存在编码问题了。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;所以总的来说，编码的原因可以总结为：&lt;/p&gt;&lt;ol type="1" style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; "&gt;&lt;li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 3px; "&gt;计算机中存储信息的最小单元是一个字节即 8 个 bit，所以能表示的字符范围是 0~255 个&lt;/li&gt;&lt;li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 3px; "&gt;人类要表示的符号太多，无法用一个字节来完全表示&lt;/li&gt;&lt;li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 3px; "&gt;要解决这个矛盾必须需要一个新的数据结构 char，从 char 到 byte 必须编码&lt;/li&gt;&lt;/ol&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;a name="minor1.2"&gt;&lt;span  style="font-size: 1.2em; font-weight: bold; "&gt;如何&amp;#8220;翻译&amp;#8221;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;明白了各种语言需要交流，经过翻译是必要的，那又如何来翻译呢？计算中提拱了多种翻译方式，常见的有 ASCII、ISO-8859-1、GB2312、GBK、UTF-8、UTF-16 等。它们都可以被看作为字典，它们规定了转化的规则，按照这个规则就可以让计算机正确的表示我们的字符。目前的编码格式很多，例如 GB2312、GBK、UTF-8、UTF-16 这几种格式都可以表示一个汉字，那我们到底选择哪种编码格式来存储汉字呢？这就要考虑到其它因素了，是存储空间重要还是编码的效率重要。根据这些因素来正确选择编码格式，下面简要介绍一下这几种编码格式。&lt;/p&gt;&lt;ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; "&gt;&lt;li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; "&gt;ASCII 码&lt;/li&gt;&lt;/ul&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;学过计算机的人都知道 ASCII 码，总共有 128 个，用一个字节的低 7 位表示，0~31 是控制字符如换行回车删除等；32~126 是打印字符，可以通过键盘输入并且能够显示出来。&lt;/p&gt;&lt;ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; "&gt;&lt;li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; "&gt;ISO-8859-1&lt;/li&gt;&lt;/ul&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;128 个字符显然是不够用的，于是 ISO 组织在 ASCII 码基础上又制定了一些列标准用来扩展 ASCII 编码，它们是 ISO-8859-1~ISO-8859-15，其中 ISO-8859-1 涵盖了大多数西欧语言字符，所有应用的最广泛。ISO-8859-1 仍然是单字节编码，它总共能表示 256 个字符。&lt;/p&gt;&lt;ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; "&gt;&lt;li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; "&gt;GB2312&lt;/li&gt;&lt;/ul&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;它的全称是《信息交换用汉字编码字符集 基本集》，它是双字节编码，总的编码范围是 A1-F7，其中从 A1-A9 是符号区，总共包含 682 个符号，从 B0-F7 是汉字区，包含 6763 个汉字。&lt;/p&gt;&lt;ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; "&gt;&lt;li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; "&gt;GBK&lt;/li&gt;&lt;/ul&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;全称叫《汉字内码扩展规范》，是国家技术监督局为 windows95 所制定的新的汉字内码规范，它的出现是为了扩展 GB2312，加入更多的汉字，它的编码范围是 8140~FEFE（去掉 XX7F）总共有 23940 个码位，它能表示 21003 个汉字，它的编码是和 GB2312 兼容的，也就是说用 GB2312 编码的汉字可以用 GBK 来解码，并且不会有乱码。&lt;/p&gt;&lt;ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; "&gt;&lt;li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; "&gt;GB18030&lt;/li&gt;&lt;/ul&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;全称是《信息交换用汉字编码字符集》，是我国的强制标准，它可能是单字节、双字节或者四字节编码，它的编码与 GB2312 编码兼容，这个虽然是国家标准，但是实际应用系统中使用的并不广泛。&lt;/p&gt;&lt;ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; "&gt;&lt;li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; "&gt;UTF-16&lt;/li&gt;&lt;/ul&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;说到 UTF 必须要提到 Unicode（Universal Code 统一码），ISO 试图想创建一个全新的超语言字典，世界上所有的语言都可以通过这本字典来相互翻译。可想而知这个字典是多么的复杂，关于 Unicode 的详细规范可以参考相应文档。Unicode 是 Java 和 XML 的基础，下面详细介绍 Unicode 在计算机中的存储形式。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;UTF-16 具体定义了 Unicode 字符在计算机中存取方法。UTF-16 用两个字节来表示 Unicode 转化格式，这个是定长的表示方法，不论什么字符都可以用两个字节表示，两个字节是 16 个 bit，所以叫 UTF-16。UTF-16 表示字符非常方便，每两个字节表示一个字符，这个在字符串操作时就大大简化了操作，这也是 Java 以 UTF-16 作为内存的字符存储格式的一个很重要的原因。&lt;/p&gt;&lt;ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; "&gt;&lt;li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; "&gt;UTF-8&lt;/li&gt;&lt;/ul&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;UTF-16 统一采用两个字节表示一个字符，虽然在表示上非常简单方便，但是也有其缺点，有很大一部分字符用一个字节就可以表示的现在要两个字节表示，存储空间放大了一倍，在现在的网络带宽还非常有限的今天，这样会增大网络传输的流量，而且也没必要。而 UTF-8 采用了一种变长技术，每个编码区域有不同的字码长度。不同类型的字符可以是由 1~6 个字节组成。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;UTF-8 有以下编码规则：&lt;/p&gt;&lt;ol type="1" style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; "&gt;&lt;li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 3px; "&gt;如果一个字节，最高位（第 8 位）为 0，表示这是一个 ASCII 字符（00 - 7F）。可见，所有 ASCII 编码已经是 UTF-8 了。&lt;/li&gt;&lt;li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 3px; "&gt;如果一个字节，以 11 开头，连续的 1 的个数暗示这个字符的字节数，例如：110xxxxx 代表它是双字节 UTF-8 字符的首字节。&lt;/li&gt;&lt;li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 3px; "&gt;如果一个字节，以 10 开始，表示它不是首字节，需要向前查找才能得到当前字符的首字节&lt;/li&gt;&lt;/ol&gt;&lt;div  style="clear: both; background-image: url(http://1.www.s81c.com/i/solid.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; height: 1px; background-position: initial initial; background-repeat: repeat no-repeat; "&gt;&lt;/div&gt;&lt;p  style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; font-size: 0.76em; clear: both; text-align: right; height: 15px; "&gt;&lt;a href="http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/index.html#ibm-pcon"  style="color: #4c6e94; display: inline; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 18px; text-decoration: none; background-image: url(http://1.www.s81c.com/i/v16/icons/u_bold.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; font-weight: bold; background-position: 0px -1px; background-repeat: no-repeat no-repeat; "&gt;回页首&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;a name="major2"&gt;&lt;span  style="font-size: 1.5em; font-weight: bold; "&gt;Java 中需要编码的场景&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;前面描述了常见的几种编码格式，下面将介绍 Java 中如何处理对编码的支持，什么场合中需要编码。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;a name="minor2.1"&gt;&lt;span  style="font-size: 1.2em; font-weight: bold; "&gt;I/O 操作中存在的编码&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;我们知道涉及到编码的地方一般都在字符到字节或者字节到字符的转换上，而需要这种转换的场景主要是在 I/O 的时候，这个 I/O 包括磁盘 I/O 和网络 I/O，关于网络 I/O 部分在后面将主要以 Web 应用为例介绍。下图是 Java 中处理 I/O 问题的接口：&lt;/p&gt;&lt;br /&gt;&lt;img alt="Figure xxx. Requires a heading" height="186" src="http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/image002.png" width="352" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; " /&gt;&amp;nbsp;&lt;br /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;Reader 类是 Java 的 I/O 中读字符的父类，而 InputStream 类是读字节的父类，InputStreamReader 类就是关联字节到字符的桥梁，它负责在 I/O 过程中处理读取字节到字符的转换，而具体字节到字符的解码实现它由 StreamDecoder 去实现，在 StreamDecoder 解码过程中必须由用户指定 Charset 编码格式。值得注意的是如果你没有指定 Charset，将使用本地环境中的默认字符集，例如在中文环境中将使用 GBK 编码。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;写的情况也是类似，字符的父类是 Writer，字节的父类是 OutputStream，通过 OutputStreamWriter 转换字符到字节。如下图所示：&lt;/p&gt;&lt;br /&gt;&lt;img alt="Figure xxx. Requires a heading" height="187" src="http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/image004.png" width="359" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; " /&gt;&amp;nbsp;&lt;br /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;同样 StreamEncoder 类负责将字符编码成字节，编码格式和默认编码规则与解码是一致的。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;如下面一段代码，实现了文件的读写功能：&lt;/p&gt;&lt;br /&gt;&lt;a name="listing1"&gt;&lt;strong style="padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; font-family: arial, sans-serif; "&gt;清单 1.I/O 涉及的编码示例&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;table width="100%" cellpadding="0" summary="This table contains a code listing." cellspacing="0" border="0" style="font-size: 0.8em; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td  style="font-family: arial, nsimsun, sans-serif; background-color: #f7f7f7 !important; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; padding-top: 2px; padding-right: 2px; padding-bottom: 5px; padding-left: 2px; "&gt;&lt;pre  style="width: 694px; margin-top: 0px; margin-bottom: 0px; font-family: 'Andale Mono', 'Lucida Console', Monaco, Liberation, fixed, monospace; font-size: 11px; overflow-x: auto; overflow-y: auto; background-image: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: #f7f7f7 !important; color: #000000; background-position: initial initial !important; background-repeat: initial initial !important; "&gt;String file = "c:/stream.txt"; &#xD;
 String charset = "UTF-8"; &#xD;
 // 写字符换转成字节流&#xD;
 FileOutputStream outputStream = new FileOutputStream(file); &#xD;
 OutputStreamWriter writer = new OutputStreamWriter( &#xD;
 outputStream, charset); &#xD;
 try { &#xD;
    writer.write("这是要保存的中文字符"); &#xD;
 } finally { &#xD;
    writer.close(); &#xD;
 } &#xD;
 // 读取字节转换成字符&#xD;
 FileInputStream inputStream = new FileInputStream(file); &#xD;
 InputStreamReader reader = new InputStreamReader( &#xD;
 inputStream, charset); &#xD;
 StringBuffer buffer = new StringBuffer(); &#xD;
 char[] buf = new char[64]; &#xD;
 int count = 0; &#xD;
 try { &#xD;
    while ((count = reader.read(buf)) != -1) { &#xD;
        buffer.append(buffer, 0, count); &#xD;
    } &#xD;
 } finally { &#xD;
    reader.close(); &#xD;
 } &#xD;
&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;在我们的应用程序中涉及到 I/O 操作时只要注意指定统一的编解码 Charset 字符集，一般不会出现乱码问题，有些应用程序如果不注意指定字符编码，中文环境中取操作系统默认编码，如果编解码都在中文环境中，通常也没问题，但是还是强烈的不建议使用操作系统的默认编码，因为这样，你的应用程序的编码格式就和运行环境绑定起来了，在跨环境下很可能出现乱码问题。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;a name="minor2.2"&gt;&lt;span  style="font-size: 1.2em; font-weight: bold; "&gt;内存中操作中的编码&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;在 Java 开发中除了 I/O 涉及到编码外，最常用的应该就是在内存中进行字符到字节的数据类型的转换，Java 中用 String 表示字符串，所以 String 类就提供转换到字节的方法，也支持将字节转换为字符串的构造函数。如下代码示例：&lt;/p&gt;&lt;table width="100%" cellpadding="0" summary="This table contains a code listing." cellspacing="0" border="0" style="font-size: 0.8em; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td  style="font-family: arial, nsimsun, sans-serif; background-color: #f7f7f7 !important; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; padding-top: 2px; padding-right: 2px; padding-bottom: 5px; padding-left: 2px; "&gt;&lt;pre  style="width: 694px; margin-top: 0px; margin-bottom: 0px; font-family: 'Andale Mono', 'Lucida Console', Monaco, Liberation, fixed, monospace; font-size: 11px; overflow-x: auto; overflow-y: auto; background-image: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: #f7f7f7 !important; color: #000000; background-position: initial initial !important; background-repeat: initial initial !important; "&gt;String s = "这是一段中文字符串"; &#xD;
 byte[] b = s.getBytes("UTF-8"); &#xD;
 String n = new String(b,"UTF-8"); &#xD;
&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;另外一个是已经被被废弃的 ByteToCharConverter 和 CharToByteConverter 类，它们分别提供了 convertAll 方法可以实现 byte[] 和 char[] 的互转。如下代码所示：&lt;/p&gt;&lt;table width="100%" cellpadding="0" summary="This table contains a code listing." cellspacing="0" border="0" style="font-size: 0.8em; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td  style="font-family: arial, nsimsun, sans-serif; background-color: #f7f7f7 !important; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; padding-top: 2px; padding-right: 2px; padding-bottom: 5px; padding-left: 2px; "&gt;&lt;pre  style="width: 694px; margin-top: 0px; margin-bottom: 0px; font-family: 'Andale Mono', 'Lucida Console', Monaco, Liberation, fixed, monospace; font-size: 11px; overflow-x: auto; overflow-y: auto; background-image: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: #f7f7f7 !important; color: #000000; background-position: initial initial !important; background-repeat: initial initial !important; "&gt;ByteToCharConverter charConverter = ByteToCharConverter.getConverter("UTF-8"); &#xD;
 char c[] = charConverter.convertAll(byteArray); &#xD;
 CharToByteConverter byteConverter = CharToByteConverter.getConverter("UTF-8"); &#xD;
 byte[] b = byteConverter.convertAll(c); &#xD;
&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;这两个类已经被 Charset 类取代，Charset 提供 encode 与 decode 分别对应 char[] 到 byte[] 的编码和 byte[] 到 char[] 的解码。如下代码所示：&lt;/p&gt;&lt;table width="100%" cellpadding="0" summary="This table contains a code listing." cellspacing="0" border="0" style="font-size: 0.8em; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td  style="font-family: arial, nsimsun, sans-serif; background-color: #f7f7f7 !important; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; padding-top: 2px; padding-right: 2px; padding-bottom: 5px; padding-left: 2px; "&gt;&lt;pre  style="width: 694px; margin-top: 0px; margin-bottom: 0px; font-family: 'Andale Mono', 'Lucida Console', Monaco, Liberation, fixed, monospace; font-size: 11px; overflow-x: auto; overflow-y: auto; background-image: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: #f7f7f7 !important; color: #000000; background-position: initial initial !important; background-repeat: initial initial !important; "&gt;Charset charset = Charset.forName("UTF-8"); &#xD;
 ByteBuffer byteBuffer = charset.encode(string); &#xD;
 CharBuffer charBuffer = charset.decode(byteBuffer); &#xD;
&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;编码与解码都在一个类中完成，通过 forName 设置编解码字符集，这样更容易统一编码格式，比 ByteToCharConverter 和 CharToByteConverter 类更方便。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;Java 中还有一个 ByteBuffer 类，它提供一种 char 和 byte 之间的软转换，它们之间转换不需要编码与解码，只是把一个 16bit 的 char 格式，拆分成为 2 个 8bit 的 byte 表示，它们的实际值并没有被修改，仅仅是数据的类型做了转换。如下代码所以：&lt;/p&gt;&lt;table width="100%" cellpadding="0" summary="This table contains a code listing." cellspacing="0" border="0" style="font-size: 0.8em; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td  style="font-family: arial, nsimsun, sans-serif; background-color: #f7f7f7 !important; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; padding-top: 2px; padding-right: 2px; padding-bottom: 5px; padding-left: 2px; "&gt;&lt;pre  style="width: 694px; margin-top: 0px; margin-bottom: 0px; font-family: 'Andale Mono', 'Lucida Console', Monaco, Liberation, fixed, monospace; font-size: 11px; overflow-x: auto; overflow-y: auto; background-image: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: #f7f7f7 !important; color: #000000; background-position: initial initial !important; background-repeat: initial initial !important; "&gt;ByteBuffer heapByteBuffer = ByteBuffer.allocate(1024); &#xD;
 ByteBuffer byteBuffer = heapByteBuffer.putChar(c); &#xD;
&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;以上这些提供字符和字节之间的相互转换只要我们设置编解码格式统一一般都不会出现问题。&lt;/p&gt;&lt;div  style="clear: both; background-image: url(http://1.www.s81c.com/i/solid.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; height: 1px; background-position: initial initial; background-repeat: repeat no-repeat; "&gt;&lt;/div&gt;&lt;p  style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; font-size: 0.76em; clear: both; text-align: right; height: 15px; "&gt;&lt;a href="http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/index.html#ibm-pcon"  style="color: #4c6e94; display: inline; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 18px; text-decoration: none; background-image: url(http://1.www.s81c.com/i/v16/icons/u_bold.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; font-weight: bold; background-position: 0px -1px; background-repeat: no-repeat no-repeat; "&gt;回页首&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;a name="major3"&gt;&lt;span  style="font-size: 1.5em; font-weight: bold; "&gt;Java 中如何编解码&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;前面介绍了几种常见的编码格式，这里将以实际例子介绍 Java 中如何实现编码及解码，下面我们以&amp;#8220;I am 君山&amp;#8221;这个字符串为例介绍 Java 中如何把它以 ISO-8859-1、GB2312、GBK、UTF-16、UTF-8 编码格式进行编码的。&lt;/p&gt;&lt;br /&gt;&lt;a name="listing2"&gt;&lt;strong style="padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; font-family: arial, sans-serif; "&gt;清单 2.String 编码&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;table width="100%" cellpadding="0" summary="This table contains a code listing." cellspacing="0" border="0" style="font-size: 0.8em; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td  style="font-family: arial, nsimsun, sans-serif; background-color: #f7f7f7 !important; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; padding-top: 2px; padding-right: 2px; padding-bottom: 5px; padding-left: 2px; "&gt;&lt;pre  style="width: 694px; margin-top: 0px; margin-bottom: 0px; font-family: 'Andale Mono', 'Lucida Console', Monaco, Liberation, fixed, monospace; font-size: 11px; overflow-x: auto; overflow-y: auto; background-image: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: #f7f7f7 !important; color: #000000; background-position: initial initial !important; background-repeat: initial initial !important; "&gt;public static void encode() { &#xD;
        String name = "I am 君山"; &#xD;
        toHex(name.toCharArray()); &#xD;
        try { &#xD;
            byte[] iso8859 = name.getBytes("ISO-8859-1"); &#xD;
            toHex(iso8859); &#xD;
            byte[] gb2312 = name.getBytes("GB2312"); &#xD;
            toHex(gb2312); &#xD;
            byte[] gbk = name.getBytes("GBK"); &#xD;
            toHex(gbk); &#xD;
            byte[] utf16 = name.getBytes("UTF-16"); &#xD;
            toHex(utf16); &#xD;
            byte[] utf8 = name.getBytes("UTF-8"); &#xD;
            toHex(utf8); &#xD;
        } catch (UnsupportedEncodingException e) { &#xD;
            e.printStackTrace(); &#xD;
        } &#xD;
 } &#xD;
&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;我们把 name 字符串按照前面说的几种编码格式进行编码转化成 byte 数组，然后以 16 进制输出，我们先看一下 Java 是如何进行编码的。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;下面是 Java 中编码需要用到的类图&lt;/p&gt;&lt;br /&gt;&lt;a name="fig3"&gt;&lt;strong style="padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; font-family: arial, sans-serif; "&gt;图 1. Java 编码类图&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;img alt="图 1. Java 编码类图" height="243" src="http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/image007.jpg" width="576" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; " /&gt;&amp;nbsp;&lt;br /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;首先根据指定的 charsetName 通过 Charset.forName(charsetName) 设置 Charset 类，然后根据 Charset 创建 CharsetEncoder 对象，再调用 CharsetEncoder.encode 对字符串进行编码，不同的编码类型都会对应到一个类中，实际的编码过程是在这些类中完成的。下面是 String. getBytes(charsetName) 编码过程的时序图&lt;/p&gt;&lt;br /&gt;&lt;a name="fig4"&gt;&lt;strong style="padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; font-family: arial, sans-serif; "&gt;图 2.Java 编码时序图&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;img alt="图 2.Java 编码时序图" height="410" src="http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/image009.jpg" width="577" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; " /&gt;&amp;nbsp;&lt;br /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;从上图可以看出根据 charsetName 找到 Charset 类，然后根据这个字符集编码生成 CharsetEncoder，这个类是所有字符编码的父类，针对不同的字符编码集在其子类中定义了如何实现编码，有了 CharsetEncoder 对象后就可以调用 encode 方法去实现编码了。这个是 String.getBytes 编码方法，其它的如 StreamEncoder 中也是类似的方式。下面看看不同的字符集是如何将前面的字符串编码成 byte 数组的？&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;如字符串&amp;#8220;I am 君山&amp;#8221;的 char 数组为 49 20 61 6d 20 541b 5c71，下面把它按照不同的编码格式转化成相应的字节。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;a name="minor3.1"&gt;&lt;span  style="font-size: 1.2em; font-weight: bold; "&gt;按照 ISO-8859-1 编码&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;字符串&amp;#8220;I am 君山&amp;#8221;用 ISO-8859-1 编码，下面是编码结果：&lt;/p&gt;&lt;br /&gt;&lt;img alt="Figure xxx. Requires a heading" height="143" src="http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/image011.gif" width="523" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; " /&gt;&amp;nbsp;&lt;br /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;从上图看出 7 个 char 字符经过 ISO-8859-1 编码转变成 7 个 byte 数组，ISO-8859-1 是单字节编码，中文&amp;#8220;君山&amp;#8221;被转化成值是 3f 的 byte。3f 也就是&amp;#8220;？&amp;#8221;字符，所以经常会出现中文变成&amp;#8220;？&amp;#8221;很可能就是错误的使用了 ISO-8859-1 这个编码导致的。中文字符经过 ISO-8859-1 编码会丢失信息，通常我们称之为&amp;#8220;黑洞&amp;#8221;，它会把不认识的字符吸收掉。由于现在大部分基础的 Java 框架或系统默认的字符集编码都是 ISO-8859-1，所以很容易出现乱码问题，后面将会分析不同的乱码形式是怎么出现的。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;a name="minor3.2"&gt;&lt;span  style="font-size: 1.2em; font-weight: bold; "&gt;按照 GB2312 编码&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;字符串&amp;#8220;I am 君山&amp;#8221;用 GB2312 编码，下面是编码结果：&lt;/p&gt;&lt;br /&gt;&lt;img alt="Figure xxx. Requires a heading" height="126" src="http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/image013.gif" width="572" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; " /&gt;&amp;nbsp;&lt;br /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;GB2312 对应的 Charset 是 sun.nio.cs.ext. EUC_CN 而对应的 CharsetDecoder 编码类是 sun.nio.cs.ext. DoubleByte，GB2312 字符集有一个 char 到 byte 的码表，不同的字符编码就是查这个码表找到与每个字符的对应的字节，然后拼装成 byte 数组。查表的规则如下：&lt;/p&gt;&lt;table width="100%" cellpadding="0" summary="This table contains a code listing." cellspacing="0" border="0" style="font-size: 0.8em; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td  style="font-family: arial, nsimsun, sans-serif; background-color: #f7f7f7 !important; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; padding-top: 2px; padding-right: 2px; padding-bottom: 5px; padding-left: 2px; "&gt;&lt;pre  style="width: 694px; margin-top: 0px; margin-bottom: 0px; font-family: 'Andale Mono', 'Lucida Console', Monaco, Liberation, fixed, monospace; font-size: 11px; overflow-x: auto; overflow-y: auto; background-image: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: #f7f7f7 !important; color: #000000; background-position: initial initial !important; background-repeat: initial initial !important; "&gt;c2b[c2bIndex[char &amp;gt;&amp;gt; 8] + (char &amp;amp; 0xff)] &#xD;
&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;如果查到的码位值大于 oxff 则是双字节，否则是单字节。双字节高 8 位作为第一个字节，低 8 位作为第二个字节，如下代码所示：&lt;/p&gt;&lt;table width="100%" cellpadding="0" summary="This table contains a code listing." cellspacing="0" border="0" style="font-size: 0.8em; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td  style="font-family: arial, nsimsun, sans-serif; background-color: #f7f7f7 !important; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; padding-top: 2px; padding-right: 2px; padding-bottom: 5px; padding-left: 2px; "&gt;&lt;pre  style="width: 694px; margin-top: 0px; margin-bottom: 0px; font-family: 'Andale Mono', 'Lucida Console', Monaco, Liberation, fixed, monospace; font-size: 11px; overflow-x: auto; overflow-y: auto; background-image: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: #f7f7f7 !important; color: #000000; background-position: initial initial !important; background-repeat: initial initial !important; "&gt;if (bb &amp;gt; 0xff) {    // DoubleByte &#xD;
            if (dl - dp &amp;lt; 2) &#xD;
                return CoderResult.OVERFLOW; &#xD;
            da[dp++] = (byte) (bb &amp;gt;&amp;gt; 8); &#xD;
            da[dp++] = (byte) bb; &#xD;
 } else {                      // SingleByte &#xD;
            if (dl - dp &amp;lt; 1) &#xD;
                return CoderResult.OVERFLOW; &#xD;
            da[dp++] = (byte) bb; &#xD;
 } &#xD;
&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;从上图可以看出前 5 个字符经过编码后仍然是 5 个字节，而汉字被编码成双字节，在第一节中介绍到 GB2312 只支持 6763 个汉字，所以并不是所有汉字都能够用 GB2312 编码。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;a name="minor3.3"&gt;&lt;span  style="font-size: 1.2em; font-weight: bold; "&gt;按照 GBK 编码&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;字符串&amp;#8220;I am 君山&amp;#8221;用 GBK 编码，下面是编码结果：&lt;/p&gt;&lt;br /&gt;&lt;img alt="Figure xxx. Requires a heading" height="129" src="http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/image015.gif" width="553" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; " /&gt;&amp;nbsp;&lt;br /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;你可能已经发现上图与 GB2312 编码的结果是一样的，没错 GBK 与 GB2312 编码结果是一样的，由此可以得出 GBK 编码是兼容 GB2312 编码的，它们的编码算法也是一样的。不同的是它们的码表长度不一样，GBK 包含的汉字字符更多。所以只要是经过 GB2312 编码的汉字都可以用 GBK 进行解码，反过来则不然。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;a name="minor3.4"&gt;&lt;span  style="font-size: 1.2em; font-weight: bold; "&gt;按照 UTF-16 编码&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;字符串&amp;#8220;I am 君山&amp;#8221;用 UTF-16 编码，下面是编码结果：&lt;/p&gt;&lt;br /&gt;&lt;img alt="Figure xxx. Requires a heading" height="103" src="http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/image017.gif" width="571" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; " /&gt;&amp;nbsp;&lt;br /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;用 UTF-16 编码将 char 数组放大了一倍，单字节范围内的字符，在高位补 0 变成两个字节，中文字符也变成两个字节。从 UTF-16 编码规则来看，仅仅将字符的高位和地位进行拆分变成两个字节。特点是编码效率非常高，规则很简单，由于不同处理器对 2 字节处理方式不同，Big-endian（高位字节在前，低位字节在后）或 Little-endian（低位字节在前，高位字节在后）编码，所以在对一串字符串进行编码是需要指明到底是 Big-endian 还是 Little-endian，所以前面有两个字节用来保存 BYTE_ORDER_MARK 值，UTF-16 是用定长 16 位（2 字节）来表示的 UCS-2 或 Unicode 转换格式，通过代理对来访问 BMP 之外的字符编码。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;a name="minor3.5"&gt;&lt;span  style="font-size: 1.2em; font-weight: bold; "&gt;按照 UTF-8 编码&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;字符串&amp;#8220;I am 君山&amp;#8221;用 UTF-8 编码，下面是编码结果：&lt;/p&gt;&lt;br /&gt;&lt;img alt="Figure xxx. Requires a heading" height="107" src="http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/image019.gif" width="545" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; " /&gt;&amp;nbsp;&lt;br /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;UTF-16 虽然编码效率很高，但是对单字节范围内字符也放大了一倍，这无形也浪费了存储空间，另外 UTF-16 采用顺序编码，不能对单个字符的编码值进行校验，如果中间的一个字符码值损坏，后面的所有码值都将受影响。而 UTF-8 这些问题都不存在，UTF-8 对单字节范围内字符仍然用一个字节表示，对汉字采用三个字节表示。它的编码规则如下：&lt;/p&gt;&lt;br /&gt;&lt;a name="listing3"&gt;&lt;strong style="padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; font-family: arial, sans-serif; "&gt;清单 3.UTF-8 编码代码片段&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;table width="100%" cellpadding="0" summary="This table contains a code listing." cellspacing="0" border="0" style="font-size: 0.8em; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td  style="font-family: arial, nsimsun, sans-serif; background-color: #f7f7f7 !important; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; padding-top: 2px; padding-right: 2px; padding-bottom: 5px; padding-left: 2px; "&gt;&lt;pre  style="width: 694px; margin-top: 0px; margin-bottom: 0px; font-family: 'Andale Mono', 'Lucida Console', Monaco, Liberation, fixed, monospace; font-size: 11px; overflow-x: auto; overflow-y: auto; background-image: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: #f7f7f7 !important; color: #000000; background-position: initial initial !important; background-repeat: initial initial !important; "&gt;private CoderResult encodeArrayLoop(CharBuffer src, &#xD;
 ByteBuffer dst){ &#xD;
            char[] sa = src.array(); &#xD;
            int sp = src.arrayOffset() + src.position(); &#xD;
            int sl = src.arrayOffset() + src.limit(); &#xD;
            byte[] da = dst.array(); &#xD;
            int dp = dst.arrayOffset() + dst.position(); &#xD;
            int dl = dst.arrayOffset() + dst.limit(); &#xD;
            int dlASCII = dp + Math.min(sl - sp, dl - dp); &#xD;
            // ASCII only loop &#xD;
            while (dp &amp;lt; dlASCII &amp;amp;&amp;amp; sa[sp] &amp;lt; '\u0080') &#xD;
                da[dp++] = (byte) sa[sp++]; &#xD;
            while (sp &amp;lt; sl) { &#xD;
                char c = sa[sp]; &#xD;
                if (c &amp;lt; 0x80) { &#xD;
                    // Have at most seven bits &#xD;
                    if (dp &amp;gt;= dl) &#xD;
                        return overflow(src, sp, dst, dp); &#xD;
                    da[dp++] = (byte)c; &#xD;
                } else if (c &amp;lt; 0x800) { &#xD;
                    // 2 bytes, 11 bits &#xD;
                    if (dl - dp &amp;lt; 2) &#xD;
                        return overflow(src, sp, dst, dp); &#xD;
                    da[dp++] = (byte)(0xc0 | (c &amp;gt;&amp;gt; 6)); &#xD;
                    da[dp++] = (byte)(0x80 | (c &amp;amp; 0x3f)); &#xD;
                } else if (Character.isSurrogate(c)) { &#xD;
                    // Have a surrogate pair &#xD;
                    if (sgp == null) &#xD;
                        sgp = new Surrogate.Parser(); &#xD;
                    int uc = sgp.parse(c, sa, sp, sl); &#xD;
                    if (uc &amp;lt; 0) { &#xD;
                        updatePositions(src, sp, dst, dp); &#xD;
                        return sgp.error(); &#xD;
                    } &#xD;
                    if (dl - dp &amp;lt; 4) &#xD;
                        return overflow(src, sp, dst, dp); &#xD;
                    da[dp++] = (byte)(0xf0 | ((uc &amp;gt;&amp;gt; 18))); &#xD;
                    da[dp++] = (byte)(0x80 | ((uc &amp;gt;&amp;gt; 12) &amp;amp; 0x3f)); &#xD;
                    da[dp++] = (byte)(0x80 | ((uc &amp;gt;&amp;gt;  6) &amp;amp; 0x3f)); &#xD;
                    da[dp++] = (byte)(0x80 | (uc &amp;amp; 0x3f)); &#xD;
                    sp++;  // 2 chars &#xD;
                } else { &#xD;
                    // 3 bytes, 16 bits &#xD;
                    if (dl - dp &amp;lt; 3) &#xD;
                        return overflow(src, sp, dst, dp); &#xD;
                    da[dp++] = (byte)(0xe0 | ((c &amp;gt;&amp;gt; 12))); &#xD;
                    da[dp++] = (byte)(0x80 | ((c &amp;gt;&amp;gt;  6) &amp;amp; 0x3f)); &#xD;
                    da[dp++] = (byte)(0x80 | (c &amp;amp; 0x3f)); &#xD;
                } &#xD;
                sp++; &#xD;
            } &#xD;
            updatePositions(src, sp, dst, dp); &#xD;
            return CoderResult.UNDERFLOW; &#xD;
 } &#xD;
&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;UTF-8 编码与 GBK 和 GB2312 不同，不用查码表，所以在编码效率上 UTF-8 的效率会更好，所以在存储中文字符时 UTF-8 编码比较理想。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;a name="minor3.6"&gt;&lt;span  style="font-size: 1.2em; font-weight: bold; "&gt;几种编码格式的比较&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;对中文字符后面四种编码格式都能处理，GB2312 与 GBK 编码规则类似，但是 GBK 范围更大，它能处理所有汉字字符，所以 GB2312 与 GBK 比较应该选择 GBK。UTF-16 与 UTF-8 都是处理 Unicode 编码，它们的编码规则不太相同，相对来说 UTF-16 编码效率最高，字符到字节相互转换更简单，进行字符串操作也更好。它适合在本地磁盘和内存之间使用，可以进行字符和字节之间快速切换，如 Java 的内存编码就是采用 UTF-16 编码。但是它不适合在网络之间传输，因为网络传输容易损坏字节流，一旦字节流损坏将很难恢复，想比较而言 UTF-8 更适合网络传输，对 ASCII 字符采用单字节存储，另外单个字符损坏也不会影响后面其它字符，在编码效率上介于 GBK 和 UTF-16 之间，所以 UTF-8 在编码效率上和编码安全性上做了平衡，是理想的中文编码方式。&lt;/p&gt;&lt;div  style="clear: both; background-image: url(http://1.www.s81c.com/i/solid.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; height: 1px; background-position: initial initial; background-repeat: repeat no-repeat; "&gt;&lt;/div&gt;&lt;p  style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; font-size: 0.76em; clear: both; text-align: right; height: 15px; "&gt;&lt;a href="http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/index.html#ibm-pcon"  style="color: #4c6e94; display: inline; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 18px; text-decoration: none; background-image: url(http://1.www.s81c.com/i/v16/icons/u_bold.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; font-weight: bold; background-position: 0px -1px; background-repeat: no-repeat no-repeat; "&gt;回页首&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;a name="major4"&gt;&lt;span  style="font-size: 1.5em; font-weight: bold; "&gt;Java Web 涉及到的编码&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;对于使用中文来说，有 I/O 的地方就会涉及到编码，前面已经提到了 I/O 操作会引起编码，而大部分 I/O 引起的乱码都是网络 I/O，因为现在几乎所有的应用程序都涉及到网络操作，而数据经过网络传输都是以字节为单位的，所以所有的数据都必须能够被序列化为字节。在 Java 中数据被序列化必须继承 Serializable 接口。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;这里有一个问题，你是否认真考虑过一段文本它的实际大小应该怎么计算，我曾经碰到过一个问题：就是要想办法压缩 Cookie 大小，减少网络传输量，当时有选择不同的压缩算法，发现压缩后字符数是减少了，但是并没有减少字节数。所谓的压缩只是将多个单字节字符通过编码转变成一个多字节字符。减少的是 String.length()，而并没有减少最终的字节数。例如将&amp;#8220;ab&amp;#8221;两个字符通过某种编码转变成一个奇怪的字符，虽然字符数从两个变成一个，但是如果采用 UTF-8 编码这个奇怪的字符最后经过编码可能又会变成三个或更多的字节。同样的道理比如整型数字 1234567 如果当成字符来存储，采用 UTF-8 来编码占用 7 个 byte，采用 UTF-16 编码将会占用 14 个 byte，但是把它当成 int 型数字来存储只需要 4 个 byte 来存储。所以看一段文本的大小，看字符本身的长度是没有意义的，即使是一样的字符采用不同的编码最终存储的大小也会不同，所以从字符到字节一定要看编码类型。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;另外一个问题，你是否考虑过，当我们在电脑中某个文本编辑器里输入某个汉字时，它到底是怎么表示的？我们知道，计算机里所有的信息都是以 01 表示的，那么一个汉字，它到底是多少个 0 和 1 呢？我们能够看到的汉字都是以字符形式出现的，例如在 Java 中&amp;#8220;淘宝&amp;#8221;两个字符，它在计算机中的数值 10 进制是 28120 和 23453，16 进制是 6bd8 和 5d9d，也就是这两个字符是由这两个数字唯一表示的。Java 中一个 char 是 16 个 bit 相当于两个字节，所以两个汉字用 char 表示在内存中占用相当于四个字节的空间。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;这两个问题搞清楚后，我们看一下 Java Web 中那些地方可能会存在编码转换？&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;用户从浏览器端发起一个 HTTP 请求，需要存在编码的地方是 URL、Cookie、Parameter。服务器端接受到 HTTP 请求后要解析 HTTP 协议，其中 URI、Cookie 和 POST 表单参数需要解码，服务器端可能还需要读取数据库中的数据，本地或网络中其它地方的文本文件，这些数据都可能存在编码问题，当 Servlet 处理完所有请求的数据后，需要将这些数据再编码通过 Socket 发送到用户请求的浏览器里，再经过浏览器解码成为文本。这些过程如下图所示：&lt;/p&gt;&lt;br /&gt;&lt;a name="fig10"&gt;&lt;strong style="padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; font-family: arial, sans-serif; "&gt;图 3. 一次 HTTP 请求的编码示例（&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&lt;a href="http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/image021-lg.png" style="color: #4c6e94; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; font-family: arial, sans-serif; "&gt;查看大图&lt;/a&gt;）&lt;/strong&gt;&lt;br /&gt;&lt;img alt="图 3. 一次 HTTP 请求的编码示例" height="237" src="http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/image021.gif" width="569" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; " /&gt;&amp;nbsp;&lt;br /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;如上图所示一次 HTTP 请求设计到很多地方需要编解码，它们编解码的规则是什么？下面将会重点阐述一下：&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;a name="minor4.1"&gt;&lt;span  style="font-size: 1.2em; font-weight: bold; "&gt;URL 的编解码&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;用户提交一个 URL，这个 URL 中可能存在中文，因此需要编码，如何对这个 URL 进行编码？根据什么规则来编码？有如何来解码？如下图一个 URL：&lt;/p&gt;&lt;br /&gt;&lt;a name="fig11"&gt;&lt;strong style="padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; font-family: arial, sans-serif; "&gt;图 4.URL 的几个组成部分&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;img alt="图 4.URL 的几个组成部分" height="185" src="http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/image023.gif" width="576" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; " /&gt;&amp;nbsp;&lt;br /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;上图中以 Tomcat 作为 Servlet Engine 为例，它们分别对应到下面这些配置文件中：&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;Port 对应在 Tomcat 的 &amp;lt;Connector port="8080"/&amp;gt; 中配置，而 Context Path 在 &amp;lt;Context path="/examples"/&amp;gt; 中配置，Servlet Path 在 Web 应用的 web.xml 中的&lt;/p&gt;&lt;table width="100%" cellpadding="0" summary="This table contains a code listing." cellspacing="0" border="0" style="font-size: 0.8em; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td  style="font-family: arial, nsimsun, sans-serif; background-color: #f7f7f7 !important; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; padding-top: 2px; padding-right: 2px; padding-bottom: 5px; padding-left: 2px; "&gt;&lt;pre  style="width: 694px; margin-top: 0px; margin-bottom: 0px; font-family: 'Andale Mono', 'Lucida Console', Monaco, Liberation, fixed, monospace; font-size: 11px; overflow-x: auto; overflow-y: auto; background-image: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: #f7f7f7 !important; color: #000000; background-position: initial initial !important; background-repeat: initial initial !important; "&gt;&amp;lt;servlet-mapping&amp;gt; &#xD;
        &amp;lt;servlet-name&amp;gt;junshanExample&amp;lt;/servlet-name&amp;gt; &#xD;
        &amp;lt;url-pattern&amp;gt;/servlets/servlet/*&amp;lt;/url-pattern&amp;gt; &#xD;
 &amp;lt;/servlet-mapping&amp;gt; &#xD;
&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&amp;lt;url-pattern&amp;gt; 中配置，PathInfo 是我们请求的具体的 Servlet，QueryString 是要传递的参数，注意这里是在浏览器里直接输入 URL 所以是通过 Get 方法请求的，如果是 POST 方法请求的话，QueryString 将通过表单方式提交到服务器端，这个将在后面再介绍。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;上图中 PathInfo 和 QueryString 出现了中文，当我们在浏览器中直接输入这个 URL 时，在浏览器端和服务端会如何编码和解析这个 URL 呢？为了验证浏览器是怎么编码 URL 的我们选择 FireFox 浏览器并通过 HTTPFox 插件观察我们请求的 URL 的实际的内容，以下是 URL：HTTP://localhost:8080/examples/servlets/servlet/ 君山 ?author= 君山在中文 FireFox3.6.12 的测试结果&lt;/p&gt;&lt;br /&gt;&lt;a name="fig12"&gt;&lt;strong style="padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; font-family: arial, sans-serif; "&gt;图 5. HTTPFox 的测试结果&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;img alt="图 5. HTTPFox 的测试结果" height="32" src="http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/image025.jpg" width="491" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; " /&gt;&amp;nbsp;&lt;br /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;君山的编码结果分别是：e5 90 9b e5 b1 b1，be fd c9 bd，查阅上一届的编码可知，PathInfo 是 UTF-8 编码而 QueryString 是经过 GBK 编码，至于为什么会有&amp;#8220;%&amp;#8221;？查阅 URL 的编码规范 RFC3986 可知浏览器编码 URL 是将非 ASCII 字符按照某种编码格式编码成 16 进制数字然后将每个 16 进制表示的字节前加上&amp;#8220;%&amp;#8221;，所以最终的 URL 就成了上图的格式了。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;默认情况下中文 IE 最终的编码结果也是一样的，不过 IE 浏览器可以修改 URL 的编码格式在选项 -&amp;gt; 高级 -&amp;gt; 国际里面的发送 UTF-8 URL 选项可以取消。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;从上面测试结果可知浏览器对 PathInfo 和 QueryString 的编码是不一样的，不同浏览器对 PathInfo 也可能不一样，这就对服务器的解码造成很大的困难，下面我们以 Tomcat 为例看一下，Tomcat 接受到这个 URL 是如何解码的。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;解析请求的 URL 是在 org.apache.coyote.HTTP11.InternalInputBuffer 的 parseRequestLine 方法中，这个方法把传过来的 URL 的 byte[] 设置到 org.apache.coyote.Request 的相应的属性中。这里的 URL 仍然是 byte 格式，转成 char 是在 org.apache.catalina.connector.CoyoteAdapter 的 convertURI 方法中完成的：&lt;/p&gt;&lt;table width="100%" cellpadding="0" summary="This table contains a code listing." cellspacing="0" border="0" style="font-size: 0.8em; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td  style="font-family: arial, nsimsun, sans-serif; background-color: #f7f7f7 !important; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; padding-top: 2px; padding-right: 2px; padding-bottom: 5px; padding-left: 2px; "&gt;&lt;pre  style="width: 694px; margin-top: 0px; margin-bottom: 0px; font-family: 'Andale Mono', 'Lucida Console', Monaco, Liberation, fixed, monospace; font-size: 11px; overflow-x: auto; overflow-y: auto; background-image: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: #f7f7f7 !important; color: #000000; background-position: initial initial !important; background-repeat: initial initial !important; "&gt;protected void convertURI(MessageBytes uri, Request request) &#xD;
 throws Exception { &#xD;
        ByteChunk bc = uri.getByteChunk(); &#xD;
        int length = bc.getLength(); &#xD;
        CharChunk cc = uri.getCharChunk(); &#xD;
        cc.allocate(length, -1); &#xD;
        String enc = connector.getURIEncoding(); &#xD;
        if (enc != null) { &#xD;
            B2CConverter conv = request.getURIConverter(); &#xD;
            try { &#xD;
                if (conv == null) { &#xD;
                    conv = new B2CConverter(enc); &#xD;
                    request.setURIConverter(conv); &#xD;
                } &#xD;
            } catch (IOException e) {...} &#xD;
            if (conv != null) { &#xD;
                try { &#xD;
                    conv.convert(bc, cc, cc.getBuffer().length - &#xD;
 cc.getEnd()); &#xD;
                    uri.setChars(cc.getBuffer(), cc.getStart(), &#xD;
 cc.getLength()); &#xD;
                    return; &#xD;
                } catch (IOException e) {...} &#xD;
            } &#xD;
        } &#xD;
        // Default encoding: fast conversion &#xD;
        byte[] bbuf = bc.getBuffer(); &#xD;
        char[] cbuf = cc.getBuffer(); &#xD;
        int start = bc.getStart(); &#xD;
        for (int i = 0; i &amp;lt; length; i++) { &#xD;
            cbuf[i] = (char) (bbuf[i + start] &amp;amp; 0xff); &#xD;
        } &#xD;
        uri.setChars(cbuf, 0, length); &#xD;
 } &#xD;
&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;从上面的代码中可以知道对 URL 的 URI 部分进行解码的字符集是在 connector 的 &amp;lt;Connector URIEncoding=&amp;#8221;UTF-8&amp;#8221;/&amp;gt; 中定义的，如果没有定义，那么将以默认编码 ISO-8859-1 解析。所以如果有中文 URL 时最好把 URIEncoding 设置成 UTF-8 编码。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;QueryString 又如何解析？ GET 方式 HTTP 请求的 QueryString 与 POST 方式 HTTP 请求的表单参数都是作为 Parameters 保存，都是通过 request.getParameter 获取参数值。对它们的解码是在 request.getParameter 方法第一次被调用时进行的。request.getParameter 方法被调用时将会调用 org.apache.catalina.connector.Request 的 parseParameters 方法。这个方法将会对 GET 和 POST 方式传递的参数进行解码，但是它们的解码字符集有可能不一样。POST 表单的解码将在后面介绍，QueryString 的解码字符集是在哪定义的呢？它本身是通过 HTTP 的 Header 传到服务端的，并且也在 URL 中，是否和 URI 的解码字符集一样呢？从前面浏览器对 PathInfo 和 QueryString 的编码采取不同的编码格式不同可以猜测到解码字符集肯定也不会是一致的。的确是这样 QueryString 的解码字符集要么是 Header 中 ContentType 中定义的 Charset 要么就是默认的 ISO-8859-1，要使用 ContentType 中定义的编码就要设置 connector 的 &amp;lt;Connector URIEncoding=&amp;#8221;UTF-8&amp;#8221; useBodyEncodingForURI=&amp;#8221;true&amp;#8221;/&amp;gt; 中的 useBodyEncodingForURI 设置为 true。这个配置项的名字有点让人产生混淆，它并不是对整个 URI 都采用 BodyEncoding 进行解码而仅仅是对 QueryString 使用 BodyEncoding 解码，这一点还要特别注意。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;从上面的 URL 编码和解码过程来看，比较复杂，而且编码和解码并不是我们在应用程序中能完全控制的，所以在我们的应用程序中应该尽量避免在 URL 中使用非 ASCII 字符，不然很可能会碰到乱码问题，当然在我们的服务器端最好设置 &amp;lt;Connector/&amp;gt; 中的 URIEncoding 和 useBodyEncodingForURI 两个参数。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;a name="minor4.2"&gt;&lt;span  style="font-size: 1.2em; font-weight: bold; "&gt;HTTP Header 的编解码&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;当客户端发起一个 HTTP 请求除了上面的 URL 外还可能会在 Header 中传递其它参数如 Cookie、redirectPath 等，这些用户设置的值很可能也会存在编码问题，Tomcat 对它们又是怎么解码的呢？&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;对 Header 中的项进行解码也是在调用 request.getHeader 是进行的，如果请求的 Header 项没有解码则调用 MessageBytes 的 toString 方法，这个方法将从 byte 到 char 的转化使用的默认编码也是 ISO-8859-1，而我们也不能设置 Header 的其它解码格式，所以如果你设置 Header 中有非 ASCII 字符解码肯定会有乱码。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;我们在添加 Header 时也是同样的道理，不要在 Header 中传递非 ASCII 字符，如果一定要传递的话，我们可以先将这些字符用 org.apache.catalina.util.URLEncoder 编码然后再添加到 Header 中，这样在浏览器到服务器的传递过程中就不会丢失信息了，如果我们要访问这些项时再按照相应的字符集解码就好了。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;a name="minor4.3"&gt;&lt;span  style="font-size: 1.2em; font-weight: bold; "&gt;POST 表单的编解码&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;在前面提到了 POST 表单提交的参数的解码是在第一次调用 request.getParameter 发生的，POST 表单参数传递方式与 QueryString 不同，它是通过 HTTP 的 BODY 传递到服务端的。当我们在页面上点击 submit 按钮时浏览器首先将根据 ContentType 的 Charset 编码格式对表单填的参数进行编码然后提交到服务器端，在服务器端同样也是用 ContentType 中字符集进行解码。所以通过 POST 表单提交的参数一般不会出现问题，而且这个字符集编码是我们自己设置的，可以通过 request.setCharacterEncoding(charset) 来设置。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;另外针对 multipart/form-data 类型的参数，也就是上传的文件编码同样也是使用 ContentType 定义的字符集编码，值得注意的地方是上传文件是用字节流的方式传输到服务器的本地临时目录，这个过程并没有涉及到字符编码，而真正编码是在将文件内容添加到 parameters 中，如果用这个编码不能编码时将会用默认编码 ISO-8859-1 来编码。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;a name="minor4.4"&gt;&lt;span  style="font-size: 1.2em; font-weight: bold; "&gt;HTTP BODY 的编解码&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;当用户请求的资源已经成功获取后，这些内容将通过 Response 返回给客户端浏览器，这个过程先要经过编码再到浏览器进行解码。这个过程的编解码字符集可以通过 response.setCharacterEncoding 来设置，它将会覆盖 request.getCharacterEncoding 的值，并且通过 Header 的 Content-Type 返回客户端，浏览器接受到返回的 socket 流时将通过 Content-Type 的 charset 来解码，如果返回的 HTTP Header 中 Content-Type 没有设置 charset，那么浏览器将根据 Html 的 &amp;lt;meta HTTP-equiv="Content-Type" content="text/html; charset=GBK" /&amp;gt; 中的 charset 来解码。如果也没有定义的话，那么浏览器将使用默认的编码来解码。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;a name="minor4.5"&gt;&lt;span  style="font-size: 1.2em; font-weight: bold; "&gt;其它需要编码的地方&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;除了 URL 和参数编码问题外，在服务端还有很多地方可能存在编码，如可能需要读取 xml、velocity 模版引擎、JSP 或者从数据库读取数据等。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;xml 文件可以通过设置头来制定编码格式&lt;/p&gt;&lt;table width="100%" cellpadding="0" summary="This table contains a code listing." cellspacing="0" border="0" style="font-size: 0.8em; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td  style="font-family: arial, nsimsun, sans-serif; background-color: #f7f7f7 !important; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; padding-top: 2px; padding-right: 2px; padding-bottom: 5px; padding-left: 2px; "&gt;&lt;pre  style="width: 694px; margin-top: 0px; margin-bottom: 0px; font-family: 'Andale Mono', 'Lucida Console', Monaco, Liberation, fixed, monospace; font-size: 11px; overflow-x: auto; overflow-y: auto; background-image: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: #f7f7f7 !important; color: #000000; background-position: initial initial !important; background-repeat: initial initial !important; "&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt; &#xD;
&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;Velocity 模版设置编码格式：&lt;/p&gt;&lt;table width="100%" cellpadding="0" summary="This table contains a code listing." cellspacing="0" border="0" style="font-size: 0.8em; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td  style="font-family: arial, nsimsun, sans-serif; background-color: #f7f7f7 !important; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; padding-top: 2px; padding-right: 2px; padding-bottom: 5px; padding-left: 2px; "&gt;&lt;pre  style="width: 694px; margin-top: 0px; margin-bottom: 0px; font-family: 'Andale Mono', 'Lucida Console', Monaco, Liberation, fixed, monospace; font-size: 11px; overflow-x: auto; overflow-y: auto; background-image: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: #f7f7f7 !important; color: #000000; background-position: initial initial !important; background-repeat: initial initial !important; "&gt;services.VelocityService.input.encoding=UTF-8 &#xD;
&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;JSP 设置编码格式：&lt;/p&gt;&lt;table width="100%" cellpadding="0" summary="This table contains a code listing." cellspacing="0" border="0" style="font-size: 0.8em; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td  style="font-family: arial, nsimsun, sans-serif; background-color: #f7f7f7 !important; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; padding-top: 2px; padding-right: 2px; padding-bottom: 5px; padding-left: 2px; "&gt;&lt;pre  style="width: 694px; margin-top: 0px; margin-bottom: 0px; font-family: 'Andale Mono', 'Lucida Console', Monaco, Liberation, fixed, monospace; font-size: 11px; overflow-x: auto; overflow-y: auto; background-image: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: #f7f7f7 !important; color: #000000; background-position: initial initial !important; background-repeat: initial initial !important; "&gt;&amp;lt;%@page contentType="text/html; charset=UTF-8"%&amp;gt; &#xD;
&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;访问数据库都是通过客户端 JDBC 驱动来完成，用 JDBC 来存取数据要和数据的内置编码保持一致，可以通过设置 JDBC URL 来制定如 MySQL：url="jdbc:mysql://localhost:3306/DB?useUnicode=true&amp;amp;characterEncoding=GBK"。&amp;nbsp;&lt;/p&gt;&lt;div  style="clear: both; background-image: url(http://1.www.s81c.com/i/solid.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; height: 1px; background-position: initial initial; background-repeat: repeat no-repeat; "&gt;&lt;/div&gt;&lt;p  style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; font-size: 0.76em; clear: both; text-align: right; height: 15px; "&gt;&lt;a href="http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/index.html#ibm-pcon"  style="color: #4c6e94; display: inline; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 18px; text-decoration: none; background-image: url(http://1.www.s81c.com/i/v16/icons/u_bold.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; font-weight: bold; background-position: 0px -1px; background-repeat: no-repeat no-repeat; "&gt;回页首&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;a name="major5"&gt;&lt;span  style="font-size: 1.5em; font-weight: bold; "&gt;常见问题分析&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;在了解了 Java Web 中可能需要编码的地方后，下面看一下，当我们碰到一些乱码时，应该怎么处理这些问题？出现乱码问题唯一的原因都是在 char 到 byte 或 byte 到 char 转换中编码和解码的字符集不一致导致的，由于往往一次操作涉及到多次编解码，所以出现乱码时很难查找到底是哪个环节出现了问题，下面就几种常见的现象进行分析。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;a name="minor5.1"&gt;&lt;span  style="font-size: 1.2em; font-weight: bold; "&gt;中文变成了看不懂的字符&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;例如，字符串&amp;#8220;淘！我喜欢！&amp;#8221;变成了&amp;#8220;&amp;#204; &amp;#212; &amp;#163; &amp;#161;&amp;#206; &amp;#210; &amp;#207;&amp;#178;&amp;#187;&amp;#182; &amp;#163; &amp;#161;&amp;#8221;编码过程如下图所示&lt;/p&gt;&lt;br /&gt;&lt;img alt="Figure xxx. Requires a heading" height="189" src="http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/image027.gif" width="575" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; " /&gt;&amp;nbsp;&lt;br /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;字符串在解码时所用的字符集与编码字符集不一致导致汉字变成了看不懂的乱码，而且是一个汉字字符变成两个乱码字符。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;a name="minor5.2"&gt;&lt;span  style="font-size: 1.2em; font-weight: bold; "&gt;一个汉字变成一个问号&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;例如，字符串&amp;#8220;淘！我喜欢！&amp;#8221;变成了&amp;#8220;？？？？？？&amp;#8221;编码过程如下图所示&lt;/p&gt;&lt;br /&gt;&lt;img alt="Figure xxx. Requires a heading" height="192" src="http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/image029.gif" width="576" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; " /&gt;&amp;nbsp;&lt;br /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;将中文和中文符号经过不支持中文的 ISO-8859-1 编码后，所有字符变成了&amp;#8220;？&amp;#8221;，这是因为用 ISO-8859-1 进行编解码时遇到不在码值范围内的字符时统一用 3f 表示，这也就是通常所说的&amp;#8220;黑洞&amp;#8221;，所有 ISO-8859-1 不认识的字符都变成了&amp;#8220;？&amp;#8221;。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;a name="minor5.3"&gt;&lt;span  style="font-size: 1.2em; font-weight: bold; "&gt;一个汉字变成两个问号&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;例如，字符串&amp;#8220;淘！我喜欢！&amp;#8221;变成了&amp;#8220;？？？？？？？？？？？？&amp;#8221;编码过程如下图所示&lt;/p&gt;&lt;br /&gt;&lt;img alt="Figure xxx. Requires a heading" height="334" src="http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/image031.gif" width="571" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; " /&gt;&amp;nbsp;&lt;br /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;这种情况比较复杂，中文经过多次编码，但是其中有一次编码或者解码不对仍然会出现中文字符变成&amp;#8220;？&amp;#8221;现象，出现这种情况要仔细查看中间的编码环节，找出出现编码错误的地方。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;a name="minor5.4"&gt;&lt;span  style="font-size: 1.2em; font-weight: bold; "&gt;一种不正常的正确编码&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;还有一种情况是在我们通过 request.getParameter 获取参数值时，当我们直接调用&lt;/p&gt;&lt;table width="100%" cellpadding="0" summary="This table contains a code listing." cellspacing="0" border="0" style="font-size: 0.8em; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td  style="font-family: arial, nsimsun, sans-serif; background-color: #f7f7f7 !important; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; padding-top: 2px; padding-right: 2px; padding-bottom: 5px; padding-left: 2px; "&gt;&lt;pre  style="width: 694px; margin-top: 0px; margin-bottom: 0px; font-family: 'Andale Mono', 'Lucida Console', Monaco, Liberation, fixed, monospace; font-size: 11px; overflow-x: auto; overflow-y: auto; background-image: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: #f7f7f7 !important; color: #000000; background-position: initial initial !important; background-repeat: initial initial !important; "&gt;String value = request.getParameter(name); &#xD;
&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;会出现乱码，但是如果用下面的方式&lt;/p&gt;&lt;table width="100%" cellpadding="0" summary="This table contains a code listing." cellspacing="0" border="0" style="font-size: 0.8em; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td  style="font-family: arial, nsimsun, sans-serif; background-color: #f7f7f7 !important; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; padding-top: 2px; padding-right: 2px; padding-bottom: 5px; padding-left: 2px; "&gt;&lt;pre  style="width: 694px; margin-top: 0px; margin-bottom: 0px; font-family: 'Andale Mono', 'Lucida Console', Monaco, Liberation, fixed, monospace; font-size: 11px; overflow-x: auto; overflow-y: auto; background-image: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: #f7f7f7 !important; color: #000000; background-position: initial initial !important; background-repeat: initial initial !important; "&gt;String value = String(request.getParameter(name).getBytes("&#xD;
 ISO-8859-1"), "GBK");&amp;nbsp;&#xD;
			&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;解析时取得的 value 会是正确的汉字字符，这种情况是怎么造成的呢？&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;看下如所示：&lt;/p&gt;&lt;br /&gt;&lt;img alt="Figure xxx. Requires a heading" height="336" src="http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/image033.gif" width="573" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; " /&gt;&amp;nbsp;&lt;br /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;这种情况是这样的，ISO-8859-1 字符集的编码范围是 0000-00FF，正好和一个字节的编码范围相对应。这种特性保证了使用 ISO-8859-1 进行编码和解码可以保持编码数值&amp;#8220;不变&amp;#8221;。虽然中文字符在经过网络传输时，被错误地&amp;#8220;拆&amp;#8221;成了两个欧洲字符，但由于输出时也是用 ISO-8859-1，结果被&amp;#8220;拆&amp;#8221;开的中文字的两半又被合并在一起，从而又刚好组成了一个正确的汉字。虽然最终能取得正确的汉字，但是还是不建议用这种不正常的方式取得参数值，因为这中间增加了一次额外的编码与解码，这种情况出现乱码时因为 Tomcat 的配置文件中 useBodyEncodingForURI 配置项没有设置为&amp;#8221;true&amp;#8221;，从而造成第一次解析式用 ISO-8859-1 来解析才造成乱码的。&lt;/p&gt;&lt;div  style="clear: both; background-image: url(http://1.www.s81c.com/i/solid.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; height: 1px; background-position: initial initial; background-repeat: repeat no-repeat; "&gt;&lt;/div&gt;&lt;p  style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; font-size: 0.76em; clear: both; text-align: right; height: 15px; "&gt;&lt;a href="http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/index.html#ibm-pcon"  style="color: #4c6e94; display: inline; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 18px; text-decoration: none; background-image: url(http://1.www.s81c.com/i/v16/icons/u_bold.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; font-weight: bold; background-position: 0px -1px; background-repeat: no-repeat no-repeat; "&gt;回页首&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;a name="major6"&gt;&lt;span  style="font-size: 1.5em; font-weight: bold; "&gt;总结&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;本文首先总结了几种常见编码格式的区别，然后介绍了支持中文的几种编码格式，并比较了它们的使用场景。接着介绍了 Java 那些地方会涉及到编码问题，已经 Java 中如何对编码的支持。并以网络 I/O 为例重点介绍了 HTTP 请求中的存在编码的地方，以及 Tomcat 对 HTTP 协议的解析，最后分析了我们平常遇到的乱码问题出现的原因。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;综上所述，要解决中文问题，首先要搞清楚哪些地方会引起字符到字节的编码以及字节到字符的解码，最常见的地方就是读取会存储数据到磁盘，或者数据要经过网络传输。然后针对这些地方搞清楚操作这些数据的框架的或系统是如何控制编码的，正确设置编码格式，避免使用软件默认的或者是操作系统平台默认的编码格式。&lt;/p&gt;&lt;br /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;a name="resources"&gt;&lt;span  style="font-size: 1.5em; font-weight: bold; "&gt;参考资料&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;strong&gt;学习&lt;/strong&gt;&lt;/p&gt;&lt;ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; "&gt;&lt;li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; "&gt;&lt;a href="http://www.unicode.org/charts/" style="color: #4c6e94; "&gt;Unicode 编码规范&lt;/a&gt;，详细描述了 Unicode 如何编码。&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; "&gt;&lt;a href="http://en.wikipedia.org/wiki/ISO/IEC_8859-1" style="color: #4c6e94; "&gt;ISO-8859-1 编码&lt;/a&gt;，详细介绍了 ISO-8859-1 的一些细节。&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; "&gt;&lt;a href="http://www.ietf.org/rfc/rfc3986.txt" style="color: #4c6e94; "&gt;RFC3986 规范&lt;/a&gt;，详细描述了 URL 编码规范&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; "&gt;&lt;a href="http://www.w3.org/Protocols/" style="color: #4c6e94; "&gt;HTTP 协议&lt;/a&gt;，W3C 关于 HTTP 协议的详细描述。&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; "&gt;查看文章&amp;nbsp;&lt;a href="http://www.ibm.com/developerworks/cn/java/j-lo-tomcat1/index.html" style="color: #4c6e94; "&gt;《 Tomcat 系统架构与设计模式》&lt;/a&gt;（developerWorks，2010 年 5 月）：了解 Tomcat 中容器的体系结构，基本的工作原理，以及 Tomcat 中使用的经典的设计模式介绍。&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; "&gt;&lt;a href="http://www.ibm.com/developerworks/cn/java/j-lo-servlet/" style="color: #4c6e94; "&gt;Servlet 工作原理解析&lt;/a&gt;，（developerWorks，2011 年 2 月）：以 Tomcat 为例了解 Servlet 容器是如何工作的？一个 Web 工程在 Servlet 容器中是如何启动的？ Servlet 容器如何解析你在 web.xml 中定义的 Servlet ？用户的请求是如何被分配给指定的 Servlet 的？ Servlet 容器如何管理 Servlet 生命周期？你还将了解到最新的 Servlet 的 API 的类层次结构，以及 Servlet 中一些难点问题的分析。&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; "&gt;&lt;a href="http://www.ibm.com/developerworks/cn/java/" style="color: #4c6e94; "&gt;developerWorks Java 技术专区&lt;/a&gt;：这里有数百篇关于 Java 编程各个方面的文章。&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;strong&gt;讨论&lt;/strong&gt;&lt;/p&gt;&lt;ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; "&gt;&lt;li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; "&gt;加入&amp;nbsp;&lt;a href="http://www.ibm.com/developerworks/cn/community/" style="color: #4c6e94; "&gt;developerWorks 中文社区&lt;/a&gt;。查看开发人员推动的博客、论坛、组和维基，并与其他 developerWorks 用户交流。&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;a name="author"&gt;&lt;span  style="font-size: 1.5em; font-weight: bold; "&gt;关于作者&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;div  style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; width: 710px; border-top-width: 1px; border-top-style: solid; border-top-color: #cccccc; "&gt;&lt;div  style="background-image: url(http://1.www.s81c.com/i/v16/t/container-gradient.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-bottom-color: #cccccc; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: #cccccc; border-left-style: solid; border-left-width: 1px; border-right-color: #cccccc; border-right-style: solid; border-right-width: 1px; min-height: 55px; background-position: 0px 100%; background-repeat: repeat no-repeat; "&gt;&lt;p id="aeaoofnhgocdbnbeljkmbjdmhbcokfdb-mousedown" style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; font-size: 0.76em; "&gt;&lt;a name="author1" style="width: 20px; height: 20px; text-indent: 20px; background-image: url(http://www.cnblogs.com/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;amp;file=anchor.gif); background-repeat: no-repeat no-repeat; "&gt;&lt;/a&gt;许令波，developerWorks 中国网站最佳作者，现就职于淘宝网，是一名 Java 开发工程师。对大型互联网架构设计颇感兴趣，喜欢钻研开源框架的设计原理。有时间将学到的知识整理成文章，也喜欢记录下工作和生活中的一些思考。个人网站是：http://xulingbo.net。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;img src="http://www.cnblogs.com/zhuor/aggbug/2172486.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/zhuor/archive/2011/09/09/2172486.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/zhuor/archive/2011/09/09/2172484.html</id><title type="text">轻松实现坐标转换(转)</title><summary type="text">不同地理位置系统转换入门Sami Salkosuo, 应用程序架构师, EMC简介：很多流行的应用程序可以提供基于位置的服务，但是计算机如何识别真实世界中的位置呢？很多方法都涉及到地理坐标系统，并且在实际应用中存在不同的此类系统。在本文中，应用程序架构师 Sami Salkosuo 演示了使用 Java™ 代码在两种流行的系统之间转换位置数据：人们较为熟悉的经纬度系统和统一横轴墨卡托投影（Universal Transverse Mercator）系统。标记本文！发布日期：2007 年 9 月 07 日级别：初级访问情况7901 次浏览建议：0(添加评论)平均分 （共 3 个评分 ）位置服务 </summary><published>2011-09-09T06:06:00Z</published><updated>2011-09-09T06:06:00Z</updated><author><name>卓如</name><uri>http://www.cnblogs.com/zhuor/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zhuor/archive/2011/09/09/2172484.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zhuor/archive/2011/09/09/2172484.html"/><content type="html">&lt;span  style="font-family: Simsun; line-height: normal; background-color: #ffffff; font-size: medium; "&gt;&lt;div id="dw-summary-article" style="width: 930px; background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#ffffff), to(#ececec)); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; margin-top: 3px; border-bottom-color: #cccccc; border-bottom-style: solid; border-bottom-width: 1px; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;div  style="padding-top: 10px; padding-right: 10px; padding-bottom: 0px; padding-left: 10px; "&gt;&lt;p id="" style="font-family: arial, nsimsun, sans-serif; font-size: 0.76em; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; padding-top: 0em; padding-right: 0em; padding-bottom: 1em; padding-left: 4px; "&gt;&lt;em style="font-family: verdana, sans-serif; font-weight: bold; font-size: 1.1em; font-style: normal; color: #666666; "&gt;不同地理位置系统转换入门&lt;/em&gt;&lt;/p&gt;&lt;/div&gt;&lt;div  style="overflow-x: visible; overflow-y: visible; height: 151px; "&gt;&lt;div  style="width: 500px; float: left; padding-left: 14px; margin-bottom: 10px; "&gt;&lt;div  style="font-size: 0.76em; font-family: arial, sans-serif; "&gt;&lt;a  rel="#authortip1" href="http://www.ibm.com/developerworks/cn/java/j-coordconvert/#author1" title="" id="" style="color: #4c6e94; "&gt;Sami Salkosuo&lt;/a&gt;, 应用程序架构师, EMC&lt;/div&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; font-size: 0.76em; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; padding-top: 0em; padding-right: 0em; padding-bottom: 1em; padding-left: 0em; "&gt;&lt;/p&gt;&lt;p id="" style="font-family: arial, nsimsun, sans-serif; font-size: 0.76em; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; padding-top: 0em; padding-right: 0em; padding-bottom: 1em; padding-left: 0em; "&gt;&lt;strong&gt;简介：&lt;/strong&gt;&amp;nbsp;很多流行的应用程序可以提供基于位置的服务，但是计算机如何识别真实世界中的位置呢？很多方法都涉及到地理坐标系统，并且在实际应用中存在不同的此类系统。在本文中，应用程序架构师 Sami Salkosuo 演示了使用 Java&amp;#8482; 代码在两种流行的系统之间转换位置数据：人们较为熟悉的经纬度系统和统一横轴墨卡托投影（Universal Transverse Mercator）系统。&lt;/p&gt;&lt;div id="dw-tag-content" &gt;&lt;/div&gt;&lt;div id="dw-moretags-access"  style="position: absolute; left: -3000px; width: 500px; "&gt;&lt;/div&gt;&lt;p  style="font-family: arial, nsimsun, sans-serif; font-size: 0.76em; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; padding-top: 0em; padding-right: 0em; padding-bottom: 1em; padding-left: 0em; "&gt;&lt;/p&gt;&lt;div id="dw-tag-this"  style="background-image: url(http://dw1.s81c.com/developerworks/i/dwtag_icon_maverick.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; font-size: 0.76em; font-family: arial, sans-serif; display: inline; background-position: 2px 0px; background-repeat: no-repeat no-repeat; "&gt;&lt;a  href="http://www.ibm.com/developerworks/cn/java/j-coordconvert/#" style="color: #4c6e94; text-decoration: none; background-image: url(http://dw1.s81c.com/developerworks/i/dwtag_icon_maverick.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 19px; margin-left: 2px; margin-right: 18px; font-weight: bold !important; background-position: 0px 0px; background-repeat: no-repeat no-repeat; "&gt;标记本文！&lt;/a&gt;&lt;/div&gt;&lt;div id="interestShow"  style="display: inline; "&gt;&lt;/div&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; font-size: 0.76em; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; padding-top: 0em; padding-right: 0em; padding-bottom: 1em; padding-left: 0em; "&gt;&lt;/p&gt;&lt;/div&gt;&lt;div  style="width: 380px; float: right; padding-right: 10px; "&gt;&lt;p  style="font-family: arial, nsimsun, sans-serif; font-size: 0.76em; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; padding-top: 0em; padding-right: 0em; padding-bottom: 1em; padding-left: 0em; line-height: 18px; "&gt;&lt;strong style="font-size: 1em; font-weight: bold; "&gt;发布日期：&lt;/strong&gt;&amp;nbsp;2007 年 9 月 07 日&amp;nbsp;&lt;br /&gt;&lt;strong style="font-size: 1em; font-weight: bold; "&gt;级别：&lt;/strong&gt;&amp;nbsp;初级&amp;nbsp;&lt;br /&gt;&lt;strong&gt;访问情况&lt;/strong&gt;&amp;nbsp;7901 次浏览&amp;nbsp;&lt;br /&gt;&lt;strong&gt;建议：&lt;/strong&gt;&amp;nbsp;&lt;span id="nCmts"&gt;0&amp;nbsp;(&lt;a href="http://www.ibm.com/developerworks/cn/java/j-coordconvert/#icomments" style="color: #4c6e94; "&gt;添加评论&lt;/a&gt;)&lt;/span&gt;&lt;/p&gt;&lt;div id="art-rating-widget" style="margin-top: -5px; margin-right: 0px; margin-bottom: 6px; margin-left: 0px; width: 370px; height: 20px; "&gt;&lt;a href="http://www.ibm.com/developerworks/cn/java/j-coordconvert/" style="color: #4c6e94; "&gt;&lt;img alt="1 star" title="点击评分 1 星" height="20" src="http://www.ibm.com/developerworks/js/artrating/avg-star-on.gif" width="20" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; " /&gt;&lt;/a&gt;&lt;a href="http://www.ibm.com/developerworks/cn/java/j-coordconvert/" style="color: #4c6e94; "&gt;&lt;img alt="2 stars" title="点击评分 2 星" height="20" src="http://www.ibm.com/developerworks/js/artrating/avg-star-on.gif" width="20" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; " /&gt;&lt;/a&gt;&lt;a href="http://www.ibm.com/developerworks/cn/java/j-coordconvert/" style="color: #4c6e94; "&gt;&lt;img alt="3 stars" title="点击评分 3 星" height="20" src="http://www.ibm.com/developerworks/js/artrating/avg-star-on.gif" width="20" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; " /&gt;&lt;/a&gt;&lt;a href="http://www.ibm.com/developerworks/cn/java/j-coordconvert/" style="color: #4c6e94; "&gt;&lt;img alt="4 stars" title="点击评分 4 星" height="20" src="http://www.ibm.com/developerworks/js/artrating/avg-star-on.gif" width="20" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; " /&gt;&lt;/a&gt;&lt;a href="http://www.ibm.com/developerworks/cn/java/j-coordconvert/" style="color: #4c6e94; "&gt;&lt;img alt="5 stars" title="点击评分 5 星" height="20" src="http://www.ibm.com/developerworks/js/artrating/avg-star-on.gif" width="20" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; " /&gt;&lt;/a&gt;&lt;span id="rateTxt" style="font-family: arial, sans-serif; font-size: 0.76em; vertical-align: 5px; "&gt;&amp;nbsp;平均分 （共 3 个评分 ）&lt;/span&gt;&lt;/div&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; font-size: 0.76em; margin-top: 0em; margin-right: 0em; margin-bottom: 0em; margin-left: 0em; padding-top: 0em; padding-right: 0em; padding-bottom: 1em; padding-left: 0em; "&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id="ibm-content-body" style="background-image: none; background-attachment: scroll; background-origin: initial; background-clip: initial; background-color: #ffffff; width: 930px; padding-top: 15px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; clear: both; background-position: 0px 0px; background-repeat: no-repeat no-repeat; "&gt;&lt;div id="ibm-content-main" style="float: left; clear: left; width: 710px; padding-left: 10px; "&gt;&lt;div  style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; width: 710px; "&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;位置服务 &amp;#8212;&amp;#8212; 包括基于 GPS 的导航系统和地图站点（如 Google Maps 和 Yahoo! Maps）&amp;#8212;&amp;#8212; 现在深受客户欢迎。很多企业已经利用了某些位置感知服务，而更多的用户将加入到这个行列中来，因为他们已认识到该服务带来的优势和潜能。在 2006 年，Garter 就曾表示，&amp;#8220;位置感知服务在未来两到五年内将成为主流&amp;#8221;，并且已经有 &amp;#8220;越来越多的组织部署了位置感知移动业务应用程序。&amp;#8221;（请参阅&lt;a href="http://www.ibm.com/developerworks/cn/java/j-coordconvert/#resources" style="color: #4c6e94; "&gt;参考资料&lt;/a&gt;，获得该报告的链接）。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;当企业决定实现某种位置感知应用程序时，编写此类应用程序的任务最终都落在开发人员的身上。构建位置感知服务涉及多种任务，或大或小，其中一项任务（相对较小）可能要将一种系统坐标转换为另一种系统坐标。本文将演示执行此类转换的代码，从而帮助您节省大量的工作。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;a name="1"&gt;&lt;span  style="font-size: 1.5em; font-weight: bold; "&gt;两种不同的坐标系统&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;在详细研究本文代码之前，首先需要讨论即将处理的代码所属的坐标系统：较为熟悉的经纬度系统和统一横轴墨卡托投影系统（Universal Transverse Mercator，UTM）。我们还要提到以 UTM 为基础的军事格网参考系 (MGRS)。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;a name="1.1"&gt;&lt;span  style="font-size: 1.2em; font-weight: bold; "&gt;经纬度系统&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;经纬度系统可能是最为人熟知的地理坐标设计方法。它使用两个数值表示位置。&lt;em&gt;纬度&lt;/em&gt;&amp;nbsp;表示从地球中心到地球表面东西方向线之间的角度。&lt;em&gt;经度&lt;/em&gt;&amp;nbsp;指从地球中心到地球表面南北方向线之间的角度。经纬度可以表示为十进制角度（DD），或表示为度、分、和秒（DMS）；后者的格式可表示为诸如 49&amp;#176;30'00" S 12&amp;#176;30'00" E。这是 GPS 设备使用的典型格式。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;地球以赤道（0&amp;#176; 纬线）为界，分为南半球和北半球，又以 0&amp;#176; 经线（从南极到北极的假想线，通过英国的格林威治市）为界分为东西半球。北半球的纬度从 0 度到 90 度，而南半球的纬度从 0 度到 -90 度。 东半球的经度范围从 0 度到 180 度，西半球的经度范围为 0 度到 -180 度。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;举例说明，坐标 61.44，25.40（使用 DD 单位）或 61&amp;#176;26'24''N，25&amp;#176;23'60''E（使用 DMS 单位）位于芬兰南部。坐标 -47.04, -73.48（使用 DD 单位）或 47&amp;#176;02'24''S，73&amp;#176;28'48''W（使用 DMS 单位）位于智利南部。图 1 展示了表面覆盖经纬线的地球：&lt;/p&gt;&lt;br /&gt;&lt;a name="fig1"&gt;&lt;strong style="font-size: 0.76em; font-weight: bold; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-family: arial, sans-serif; "&gt;图 1. 地球表面覆盖了经纬线&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;img alt="地球表面覆盖了经纬线" height="281" src="http://www.ibm.com/developerworks/cn/java/j-coordconvert/longlat-world.jpg" width="572" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; " /&gt;&amp;nbsp;&lt;br /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;请参阅&amp;nbsp;&lt;a href="http://www.ibm.com/developerworks/cn/java/j-coordconvert/#resources" style="color: #4c6e94; "&gt;参考资料&lt;/a&gt;，获得更详细的内容。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;a name="1.2"&gt;&lt;span  style="font-size: 1.2em; font-weight: bold; "&gt;统一横轴墨卡托投影&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;UTM 坐标系统使用基于网格的方法表示坐标。UTM 系统将地球分为 60 个区，每个区基于横轴墨卡托投影。绘图法中的地图投影方法可以在平面中表示一个两维的曲面，例如一个标准地图。&lt;a href="http://www.ibm.com/developerworks/cn/java/j-coordconvert/#fig2" style="color: #4c6e94; "&gt;图 2&lt;/a&gt;&amp;nbsp;展示了一个横轴墨卡托投影：&lt;/p&gt;&lt;br /&gt;&lt;a name="fig2"&gt;&lt;strong style="font-size: 0.76em; font-weight: bold; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-family: arial, sans-serif; "&gt;图 2. 横轴墨卡托投影&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;img alt="横轴墨卡托投影" height="239" src="http://www.ibm.com/developerworks/cn/java/j-coordconvert/traverse_mercator.jpg" width="479" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; " /&gt;&amp;nbsp;&lt;br /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;UTM 经度区范围为 1 到 60；其中 58 个区的东西跨度为 6&amp;#176;（稍后详细讨论另外两个区）。经度区涵盖了地球中纬度范围从 80&amp;#176;S 到 84&amp;#176;N 之间的所有区域。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;一共有 20 个 UTM 纬度区，每个区的南北跨度为 8&amp;#176;；使用字母 C 到 X 标识（其中没有字母 I 和 O）。A、B、Y、Z 区不在系统范围以内；它们覆盖了南极和北极区。&lt;a href="http://www.ibm.com/developerworks/cn/java/j-coordconvert/#fig3" style="color: #4c6e94; "&gt;图 3&lt;/a&gt;&amp;nbsp;展示了欧洲的 UTM 区。从图 3 中可看到两个非标准的经度区：32V 区被扩展为覆盖整个挪威的南部，而 31V 区被缩小，所以只覆盖了一片汪洋大海。&lt;/p&gt;&lt;br /&gt;&lt;a name="fig3"&gt;&lt;strong style="font-size: 0.76em; font-weight: bold; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-family: arial, sans-serif; "&gt;图 3. 欧洲地区的 UTM 区&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;img alt="欧洲地区的 UTM 区" height="598" src="http://www.ibm.com/developerworks/cn/java/j-coordconvert/utm_zones_europe.jpg" width="554" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; " /&gt;&amp;nbsp;&lt;br /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;UTM 坐标的表示格式为：&lt;em&gt;经度区纬度区以东以北&lt;/em&gt;，其中&lt;em&gt;以东&lt;/em&gt;&amp;nbsp;表示从经度区的中心子午线的投影距离，而&lt;em&gt;以北&lt;/em&gt;&amp;nbsp;表示距离赤道的投影距离。这个两个值的单位均为米。举例来说，使用 UTM 表示经/纬度坐标 61.44，25.40 的结果就是 35 V 414668 6812844；而 经/纬度坐标 -47.04，-73.48 的表示结果为 18 G 615471 4789269。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;请参阅&amp;nbsp;&lt;a href="http://www.ibm.com/developerworks/cn/java/j-coordconvert/#resources" style="color: #4c6e94; "&gt;参考资料&lt;/a&gt;，获取更多有关 UTM 和 Traverse Mercator 投影的信息。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;a name="1.3"&gt;&lt;span  style="font-size: 1.2em; font-weight: bold; "&gt;军事格网参考系&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;MGRS 是北约（NATO）军事组织使用的标准坐标系统。MGRS 以 UTM 为基础并进一步将每个区划分为 100 km &amp;#215; 100 km 的小方块。这些方块使用两个相连的字母标识：第一个字母表示经度区的东西位置，而第二个字母表示南北位置。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;例如，UTM 点 35 V 414668 6812844 等价于 MGRS 点 35VMJ1466812844。该 MGRS 点精度为米，使用 15 个字符表示，其中最后 10 个字符表示指定网格中的以东和以北的值。可以使用 15 个字符表示 MGRS 值（如前例），也可表示为 13、11、9 或 7 个字符；因此，所表示的值的精度分别为 1 米、10 米、100 米、1,000 米或 10,000 米。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;本文并未对 MGRS 进行详细说明，但是本文的下载代码包含了经纬度坐标和 MGRS 坐标之间的转换。请参阅&amp;nbsp;&lt;a href="http://www.ibm.com/developerworks/cn/java/j-coordconvert/#resources" style="color: #4c6e94; "&gt;参考资料&lt;/a&gt;，获得更多信息。&lt;/p&gt;&lt;div  style="clear: both; background-image: url(http://1.www.s81c.com/i/solid.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; height: 1px; background-position: initial initial; background-repeat: repeat no-repeat; "&gt;&lt;/div&gt;&lt;p  style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; font-size: 0.76em; clear: both; text-align: right; height: 15px; "&gt;&lt;a href="http://www.ibm.com/developerworks/cn/java/j-coordconvert/#ibm-pcon"  style="color: #4c6e94; display: inline; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 18px; text-decoration: none; background-image: url(http://1.www.s81c.com/i/v16/icons/u_bold.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; font-weight: bold; background-position: 0px -1px; background-repeat: no-repeat no-repeat; "&gt;回页首&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;a name="2"&gt;&lt;span  style="font-size: 1.5em; font-weight: bold; "&gt;坐标转换&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;确定地球上某个位置的经度和纬度坐标的最低需求是，你至少能够看到星星和太阳，并具备一个六分仪和能够显示 GMT 时间的时钟 T。根据空中某个物体与地平线之间的角度可以确定纬度，然后根据地球旋转计算出经度。本文并未详细讨论这些细节（想要了解更多请参阅&amp;nbsp;&lt;a href="http://www.ibm.com/developerworks/cn/java/j-coordconvert/#resources" style="color: #4c6e94; "&gt;参考资料&lt;/a&gt;），相反，我们假设您已经具有 DD、DMS 或 UTM 格式的坐标。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;a name="2.1"&gt;&lt;span  style="font-size: 1.2em; font-weight: bold; "&gt;在十进制角度和度/分/秒格式之间进行转换&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;DD 和 DMS 坐标格式之间的转换非常简单。下面给出了 DD 到 DMS 的转换公式：&lt;/p&gt;&lt;table width="100%" cellpadding="0" cellspacing="0" border="0" style="font-size: 0.8em; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td  style="font-family: arial, nsimsun, sans-serif; background-color: #f7f7f7 !important; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; padding-top: 2px; padding-right: 2px; padding-bottom: 5px; padding-left: 2px; "&gt;&lt;pre  style="width: 694px; margin-top: 0px; margin-bottom: 0px; font-family: 'Andale Mono', 'Lucida Console', Monaco, Liberation, fixed, monospace; font-size: 11px; overflow-x: auto; overflow-y: auto; background-image: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: #f7f7f7 !important; color: #000000; background-position: initial initial !important; background-repeat: initial initial !important; "&gt;DD: dd.ff&#xD;
DMS: dd mm ss&#xD;
&#xD;
dd=dd&#xD;
mm.gg=60*ff&#xD;
ss=60*gg&#xD;
&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;这里的&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important; "&gt;gg&lt;/code&gt;&amp;nbsp;代表计算的小数部分。负纬度表示位于南半球（S）的位置而负经度表示西半球（W）的位置。例如，假设您具有一个 DD 格式的坐标 61.44，25.40。按照下面的公式将其转换：&lt;/p&gt;&lt;table width="100%" cellpadding="0" cellspacing="0" border="0" style="font-size: 0.8em; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td  style="font-family: arial, nsimsun, sans-serif; background-color: #f7f7f7 !important; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; padding-top: 2px; padding-right: 2px; padding-bottom: 5px; padding-left: 2px; "&gt;&lt;pre  style="width: 694px; margin-top: 0px; margin-bottom: 0px; font-family: 'Andale Mono', 'Lucida Console', Monaco, Liberation, fixed, monospace; font-size: 11px; overflow-x: auto; overflow-y: auto; background-image: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: #f7f7f7 !important; color: #000000; background-position: initial initial !important; background-repeat: initial initial !important; "&gt;lat dd=61&#xD;
lat mm.gg=60*0.44=26.4&#xD;
lat ss=60*0.4=24&#xD;
&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;以及：&lt;/p&gt;&lt;table width="100%" cellpadding="0" cellspacing="0" border="0" style="font-size: 0.8em; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td  style="font-family: arial, nsimsun, sans-serif; background-color: #f7f7f7 !important; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; padding-top: 2px; padding-right: 2px; padding-bottom: 5px; padding-left: 2px; "&gt;&lt;pre  style="width: 694px; margin-top: 0px; margin-bottom: 0px; font-family: 'Andale Mono', 'Lucida Console', Monaco, Liberation, fixed, monospace; font-size: 11px; overflow-x: auto; overflow-y: auto; background-image: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: #f7f7f7 !important; color: #000000; background-position: initial initial !important; background-repeat: initial initial !important; "&gt;lon dd=25&#xD;
lon mm.gg=60*0.40=24.0&#xD;
lon ss=60*0.0=0&#xD;
&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;因此，转换为 DMS 格式的坐标变成了 61&amp;#176;26'24''N 25&amp;#176;24'00''E。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;将 DMS 转换为 DD 格式的公式如下所示：&lt;/p&gt;&lt;table width="100%" cellpadding="0" cellspacing="0" border="0" style="font-size: 0.8em; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td  style="font-family: arial, nsimsun, sans-serif; background-color: #f7f7f7 !important; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; padding-top: 2px; padding-right: 2px; padding-bottom: 5px; padding-left: 2px; "&gt;&lt;pre  style="width: 694px; margin-top: 0px; margin-bottom: 0px; font-family: 'Andale Mono', 'Lucida Console', Monaco, Liberation, fixed, monospace; font-size: 11px; overflow-x: auto; overflow-y: auto; background-image: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: #f7f7f7 !important; color: #000000; background-position: initial initial !important; background-repeat: initial initial !important; "&gt;DD: dd.ff&#xD;
DMS: dd mm ss&#xD;
&#xD;
dd.ff=dd + mm/60 + ss/3600&#xD;
&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;注意，南半球（S）的位置为负纬度，西半球（W）位置为负经度。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;现在将 DMS 格式坐标 47&amp;#176;02'24''S 和 73&amp;#176;28'48''W 转换为 DD 格式的坐标：&lt;/p&gt;&lt;table width="100%" cellpadding="0" cellspacing="0" border="0" style="font-size: 0.8em; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td  style="font-family: arial, nsimsun, sans-serif; background-color: #f7f7f7 !important; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; padding-top: 2px; padding-right: 2px; padding-bottom: 5px; padding-left: 2px; "&gt;&lt;pre  style="width: 694px; margin-top: 0px; margin-bottom: 0px; font-family: 'Andale Mono', 'Lucida Console', Monaco, Liberation, fixed, monospace; font-size: 11px; overflow-x: auto; overflow-y: auto; background-image: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: #f7f7f7 !important; color: #000000; background-position: initial initial !important; background-repeat: initial initial !important; "&gt;lat dd.ff= - (47 + 2/60 + 24/3600 )=-47.04&#xD;
lon dd.ff= - (73 + 28/60 + 48/3600)=-73.48&#xD;
&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;转换后的 DD 格式的坐标为 -47.04 和 -73.48。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;a name="2.2"&gt;&lt;span  style="font-size: 1.2em; font-weight: bold; "&gt;在经纬度和 UTM 坐标之间进行转换&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;十进制坐标可通过一个六分仪和一个记时计确定，与此不同的是，必须通过计算才能确定 UTM 坐标。虽然这些计算无非是最基本的三角形和代数计算，但是所使用的公式非常复杂。如果您阅读了 &amp;#8220;The Universal Grids: Universal Transverse Mercator (UTM) and Universal Polar Stereographic (UPS)&amp;#8221;（参阅&amp;nbsp;&lt;a href="http://www.ibm.com/developerworks/cn/java/j-coordconvert/#resources" style="color: #4c6e94; "&gt;参考资料&lt;/a&gt;&amp;nbsp;获得链接），就知道它有多复杂了。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;本文没有给出 UTM 转换公式，但是可从下面一节中给出的源代码中窥探一二，更多信息请参阅&amp;nbsp;&lt;a href="http://www.ibm.com/developerworks/cn/java/j-coordconvert/#resources" style="color: #4c6e94; "&gt;参考资料&lt;/a&gt;&amp;nbsp;提供的链接。&lt;/p&gt;&lt;div  style="clear: both; background-image: url(http://1.www.s81c.com/i/solid.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; height: 1px; background-position: initial initial; background-repeat: repeat no-repeat; "&gt;&lt;/div&gt;&lt;p  style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; font-size: 0.76em; clear: both; text-align: right; height: 15px; "&gt;&lt;a href="http://www.ibm.com/developerworks/cn/java/j-coordconvert/#ibm-pcon"  style="color: #4c6e94; display: inline; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 18px; text-decoration: none; background-image: url(http://1.www.s81c.com/i/v16/icons/u_bold.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; font-weight: bold; background-position: 0px -1px; background-repeat: no-repeat no-repeat; "&gt;回页首&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;a name="3"&gt;&lt;span  style="font-size: 1.5em; font-weight: bold; "&gt;使用 Java 代码转换坐标&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;本节介绍了执行坐标转换（十进制角度和 UTM）的库类的源代码。该 Java 类名为&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important; "&gt;com.ibm.util.CoordinateConversion&lt;/code&gt;；其思想是构建一个提供转换方法的类。该类包含实际执行转换的内部类；如果需要的话，可以从&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important; "&gt;CoordinateConversion&lt;/code&gt;&amp;nbsp;类中重构内部类，从而创建一个库包或向现有包添加类。该类执行的转换精度低于 1 米。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;code style="font-family: monospace; font-size: small !important; "&gt;CoordinateConversion&lt;/code&gt;&amp;nbsp;的源代码包含大约 750 行代码，因此本文没有全部显示。以下小节描述了有关方法，本文的&amp;nbsp;&lt;a href="http://www.ibm.com/developerworks/cn/java/j-coordconvert/#download" style="color: #4c6e94; "&gt;下载&lt;/a&gt;&amp;nbsp;小节中附带了完整的源代码。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;a name="3.1"&gt;&lt;span  style="font-size: 1.2em; font-weight: bold; "&gt;CoordinateConversion&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;code style="font-family: monospace; font-size: small !important; "&gt;CoordinateConversion&lt;/code&gt;&amp;nbsp;是主类，它被实例化为在需要是执行坐标转换。清单 1 展示了相关的公共方法，以及&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important; "&gt;CoordinateConversion&lt;/code&gt;类中包含的私有内部类：&lt;/p&gt;&lt;br /&gt;&lt;a name="listing1"&gt;&lt;strong style="font-size: 0.76em; font-weight: bold; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-family: arial, sans-serif; "&gt;清单 1. CoordinateConversion&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;table width="100%" cellpadding="0" cellspacing="0" border="0" style="font-size: 0.8em; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td  style="font-family: arial, nsimsun, sans-serif; background-color: #f7f7f7 !important; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; padding-top: 2px; padding-right: 2px; padding-bottom: 5px; padding-left: 2px; "&gt;&lt;pre  style="width: 694px; margin-top: 0px; margin-bottom: 0px; font-family: 'Andale Mono', 'Lucida Console', Monaco, Liberation, fixed, monospace; font-size: 11px; overflow-x: auto; overflow-y: auto; background-image: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: #f7f7f7 !important; color: #000000; background-position: initial initial !important; background-repeat: initial initial !important; "&gt;public class CoordinateConversion&#xD;
{&#xD;
&#xD;
  public CoordinateConversion()&#xD;
  {&#xD;
&#xD;
  }&#xD;
  &#xD;
  public double[] utm2LatLon(String UTM)&#xD;
  {&#xD;
    UTM2LatLon c = new UTM2LatLon();&#xD;
    return c.convertUTMToLatLong(UTM);&#xD;
  }&#xD;
&#xD;
  public String latLon2UTM(double latitude, double longitude)&#xD;
  {&#xD;
    LatLon2UTM c = new LatLon2UTM();&#xD;
    return c.convertLatLonToUTM(latitude, longitude);&#xD;
&#xD;
  }&#xD;
&#xD;
  //..implementation omitted&#xD;
&#xD;
  private class LatLon2UTM&#xD;
  {&#xD;
    public String convertLatLonToUTM(double latitude, double longitude)&#xD;
    {&#xD;
      //..implementation omitted&#xD;
    }&#xD;
    //..implementation omitted&#xD;
  }&#xD;
  &#xD;
  private class LatLon2MGRUTM extends LatLon2UTM&#xD;
  {&#xD;
    public String convertLatLonToMGRUTM(double latitude, double longitude)&#xD;
    {&#xD;
      //..implementation omitted&#xD;
    }&#xD;
    //..implementation omitted&#xD;
  }&#xD;
&#xD;
&#xD;
  private class MGRUTM2LatLon extends UTM2LatLon&#xD;
  {&#xD;
    public double[] convertMGRUTMToLatLong(String mgrutm)&#xD;
    {&#xD;
      //..implementation omitted&#xD;
    }&#xD;
    //..implementation omitted&#xD;
  }&#xD;
 &#xD;
 &#xD;
  private class UTM2LatLon&#xD;
  {&#xD;
    public double[] convertUTMToLatLong(String UTM)&#xD;
    {&#xD;
      //..implementation omitted&#xD;
    }&#xD;
    //..implementation omitted&#xD;
  }&#xD;
&#xD;
  private class Digraphs&#xD;
  {&#xD;
    //used to get digraphs when doing conversion between&#xD;
    //lat/long and MGRS&#xD;
    //..implementation omitted&#xD;
  }&#xD;
&#xD;
  private class LatZones&#xD;
  {&#xD;
    //include methods to determine latitude zones&#xD;
    //..implementation omitted&#xD;
  }&#xD;
&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;下一节将进一步探讨经纬度与 UTM 之间的转换。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;a name="3.2"&gt;&lt;span  style="font-size: 1.2em; font-weight: bold; "&gt;将经纬度转换为 UTM&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;将经纬度坐标转换为 UTM 坐标需要使用&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important; "&gt;String latLon2UTM(double latitude, double longitude)&lt;/code&gt;&amp;nbsp;方法。该方法的实现 创建了一个新的内部类&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important; "&gt;LatLon2UTM c = new LatLon2UTM();&lt;/code&gt;&amp;nbsp;实例，并将 UTM 坐标返回为由 15 个字符组成的字符串（即精度为 1 米）。&lt;code style="font-family: monospace; font-size: small !important; "&gt;LatLon2UTM&lt;/code&gt;&amp;nbsp;方法的实现如清单 2 所示：&lt;/p&gt;&lt;br /&gt;&lt;a name="listing2"&gt;&lt;strong style="font-size: 0.76em; font-weight: bold; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-family: arial, sans-serif; "&gt;清单 2. public String convertLatLonToUTM(double latitude, double longitude)&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;table width="100%" cellpadding="0" cellspacing="0" border="0" style="font-size: 0.8em; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td  style="font-family: arial, nsimsun, sans-serif; background-color: #f7f7f7 !important; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; padding-top: 2px; padding-right: 2px; padding-bottom: 5px; padding-left: 2px; "&gt;&lt;pre  style="width: 694px; margin-top: 0px; margin-bottom: 0px; font-family: 'Andale Mono', 'Lucida Console', Monaco, Liberation, fixed, monospace; font-size: 11px; overflow-x: auto; overflow-y: auto; background-image: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: #f7f7f7 !important; color: #000000; background-position: initial initial !important; background-repeat: initial initial !important; "&gt;public String convertLatLonToUTM(double latitude, double longitude)&#xD;
{&#xD;
  validate(latitude, longitude);&#xD;
  String UTM = "";&#xD;
&#xD;
  setVariables(latitude, longitude);&#xD;
&#xD;
  String longZone = getLongZone(longitude);&#xD;
  LatZones latZones = new LatZones();&#xD;
  String latZone = latZones.getLatZone(latitude);&#xD;
&#xD;
  double _easting = getEasting();&#xD;
  double _northing = getNorthing(latitude);&#xD;
&#xD;
  UTM = longZone + " " + latZone + " " + ((int) _easting) + " "+ ((int) _northing);&#xD;
&#xD;
  return UTM;&#xD;
}&#xD;
&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;该方法执行转换的方法为：调用各种方法获得经纬度区，然后计算以东和以北值，等等。使用&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important; "&gt;validate()&lt;/code&gt;&amp;nbsp;方法对输入进行验证；如果&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important; "&gt;(latitude &amp;lt; -90.0 || latitude &amp;gt; 90.0 || longitude &amp;lt; -180.0 || longitude &amp;gt;= 180.0)&lt;/code&gt;&amp;nbsp;子句为真，将抛出一个&lt;code style="font-family: monospace; font-size: small !important; "&gt;IllegalArgumentException&lt;/code&gt;。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;清单 3 中的&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important; "&gt;setVariables()&lt;/code&gt;&amp;nbsp;方法设置计算转换所需的各种变量（请查看 &amp;#8220;The Universal Grids&amp;#8221; 获取更多信息；可从&amp;nbsp;&lt;a href="http://www.ibm.com/developerworks/cn/java/j-coordconvert/#resources" style="color: #4c6e94; "&gt;参考资料&lt;/a&gt;&amp;nbsp;获取链接）：&lt;/p&gt;&lt;br /&gt;&lt;a name="listing3"&gt;&lt;strong style="font-size: 0.76em; font-weight: bold; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-family: arial, sans-serif; "&gt;清单 3. protected void setVariables(double latitude, double longitude)&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;table width="100%" cellpadding="0" cellspacing="0" border="0" style="font-size: 0.8em; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td  style="font-family: arial, nsimsun, sans-serif; background-color: #f7f7f7 !important; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; padding-top: 2px; padding-right: 2px; padding-bottom: 5px; padding-left: 2px; "&gt;&lt;pre  style="width: 694px; margin-top: 0px; margin-bottom: 0px; font-family: 'Andale Mono', 'Lucida Console', Monaco, Liberation, fixed, monospace; font-size: 11px; overflow-x: auto; overflow-y: auto; background-image: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: #f7f7f7 !important; color: #000000; background-position: initial initial !important; background-repeat: initial initial !important; "&gt;protected void setVariables(double latitude, double longitude)&#xD;
{&#xD;
  latitude = degreeToRadian(latitude);&#xD;
  rho = equatorialRadius * (1 - e * e) / POW(1 - POW(e * SIN(latitude), 2), 3 / 2.0);&#xD;
&#xD;
  nu = equatorialRadius / POW(1 - POW(e * SIN(latitude), 2), (1 / 2.0));&#xD;
&#xD;
  double var1;&#xD;
  if (longitude &amp;lt; 0.0)&#xD;
  {&#xD;
    var1 = ((int) ((180 + longitude) / 6.0)) + 1;&#xD;
  }&#xD;
  else&#xD;
  {&#xD;
    var1 = ((int) (longitude / 6)) + 31;&#xD;
  }&#xD;
  double var2 = (6 * var1) - 183;&#xD;
  double var3 = longitude - var2;&#xD;
  p = var3 * 3600 / 10000;&#xD;
&#xD;
  S = A0 * latitude - B0 * SIN(2 * latitude) + C0 * SIN(4 * latitude) - D0&#xD;
      * SIN(6 * latitude) + E0 * SIN(8 * latitude);&#xD;
&#xD;
  K1 = S * k0;&#xD;
  K2 = nu * SIN(latitude) * COS(latitude) * POW(sin1, 2) * k0 * (100000000) / 2;&#xD;
  K3 = ((POW(sin1, 4) * nu * SIN(latitude) * Math.pow(COS(latitude), 3)) / 24)&#xD;
      * (5 - POW(TAN(latitude), 2) + 9 * e1sq * POW(COS(latitude), 2) + 4&#xD;
      * POW(e1sq, 2) * POW(COS(latitude), 4))&#xD;
      * k0&#xD;
      * (10000000000000000L);&#xD;
&#xD;
  K4 = nu * COS(latitude) * sin1 * k0 * 10000;&#xD;
&#xD;
  K5 = POW(sin1 * COS(latitude), 3) * (nu / 6)&#xD;
      * (1 - POW(TAN(latitude), 2) + e1sq * POW(COS(latitude), 2)) * k0&#xD;
      * 1000000000000L;&#xD;
&#xD;
  A6 = (POW(p * sin1, 6) * nu * SIN(latitude) * POW(COS(latitude), 5) / 720)&#xD;
      * (61 - 58 * POW(TAN(latitude), 2) + POW(TAN(latitude), 4) + 270&#xD;
      * e1sq * POW(COS(latitude), 2) - 330 * e1sq&#xD;
      * POW(SIN(latitude), 2)) * k0 * (1E+24);&#xD;
&#xD;
}&#xD;
&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;清单 4 中的&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important; "&gt;getLongZone()&lt;/code&gt;&amp;nbsp;方法和&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important; "&gt;LatZones&lt;/code&gt;&amp;nbsp;类（可从&amp;nbsp;&lt;a href="http://www.ibm.com/developerworks/cn/java/j-coordconvert/#download" style="color: #4c6e94; "&gt;源代码&lt;/a&gt;&amp;nbsp;获得）用来获得经纬度区。经度区通过 longitude 参数计算而来，而纬度区很难使用&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important; "&gt;LatZones&lt;/code&gt;&amp;nbsp;类中的数组进行编码。&lt;/p&gt;&lt;br /&gt;&lt;a name="listing4"&gt;&lt;strong style="font-size: 0.76em; font-weight: bold; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-family: arial, sans-serif; "&gt;清单 4. protected String getLongZone(double longitude)&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;table width="100%" cellpadding="0" cellspacing="0" border="0" style="font-size: 0.8em; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td  style="font-family: arial, nsimsun, sans-serif; background-color: #f7f7f7 !important; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; padding-top: 2px; padding-right: 2px; padding-bottom: 5px; padding-left: 2px; "&gt;&lt;pre  style="width: 694px; margin-top: 0px; margin-bottom: 0px; font-family: 'Andale Mono', 'Lucida Console', Monaco, Liberation, fixed, monospace; font-size: 11px; overflow-x: auto; overflow-y: auto; background-image: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: #f7f7f7 !important; color: #000000; background-position: initial initial !important; background-repeat: initial initial !important; "&gt;protected String getLongZone(double longitude)&#xD;
{&#xD;
  double longZone = 0;&#xD;
  if (longitude &amp;lt; 0.0)&#xD;
  {&#xD;
    longZone = ((180.0 + longitude) / 6) + 1;&#xD;
  }&#xD;
  else&#xD;
  {&#xD;
    longZone = (longitude / 6) + 31;&#xD;
  }&#xD;
  String val = String.valueOf((int) longZone);&#xD;
  if (val.length() == 1)&#xD;
  {&#xD;
    val = "0" + val;&#xD;
  }&#xD;
  return val;&#xD;
}&#xD;
&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;code style="font-family: monospace; font-size: small !important; "&gt;getNorthing()&lt;/code&gt;&amp;nbsp;方法（清单 5）和&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important; "&gt;getEasting()&lt;/code&gt;&amp;nbsp;方法（清单 6）计算以北和以东的值。两种方法都使用&amp;nbsp;&lt;a href="http://www.ibm.com/developerworks/cn/java/j-coordconvert/#listing3" style="color: #4c6e94; "&gt;清单 3&lt;/a&gt;&amp;nbsp;中的&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important; "&gt;setVariables()&lt;/code&gt;方法设置的变量。&lt;/p&gt;&lt;br /&gt;&lt;a name="listing5"&gt;&lt;strong style="font-size: 0.76em; font-weight: bold; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-family: arial, sans-serif; "&gt;清单 5. protected double getNorthing(double latitude)&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;table width="100%" cellpadding="0" cellspacing="0" border="0" style="font-size: 0.8em; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td  style="font-family: arial, nsimsun, sans-serif; background-color: #f7f7f7 !important; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; padding-top: 2px; padding-right: 2px; padding-bottom: 5px; padding-left: 2px; "&gt;&lt;pre  style="width: 694px; margin-top: 0px; margin-bottom: 0px; font-family: 'Andale Mono', 'Lucida Console', Monaco, Liberation, fixed, monospace; font-size: 11px; overflow-x: auto; overflow-y: auto; background-image: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: #f7f7f7 !important; color: #000000; background-position: initial initial !important; background-repeat: initial initial !important; "&gt;protected double getNorthing(double latitude)&#xD;
{&#xD;
  double northing = K1 + K2 * p * p + K3 * POW(p, 4);&#xD;
  if (latitude &amp;lt; 0.0)&#xD;
  {&#xD;
    northing = 10000000 + northing;&#xD;
  }&#xD;
  return northing;&#xD;
}&#xD;
&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="listing6"&gt;&lt;strong style="font-size: 0.76em; font-weight: bold; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-family: arial, sans-serif; "&gt;清单 6. protected double getEasting()&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;table width="100%" cellpadding="0" cellspacing="0" border="0" style="font-size: 0.8em; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td  style="font-family: arial, nsimsun, sans-serif; background-color: #f7f7f7 !important; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; padding-top: 2px; padding-right: 2px; padding-bottom: 5px; padding-left: 2px; "&gt;&lt;pre  style="width: 694px; margin-top: 0px; margin-bottom: 0px; font-family: 'Andale Mono', 'Lucida Console', Monaco, Liberation, fixed, monospace; font-size: 11px; overflow-x: auto; overflow-y: auto; background-image: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: #f7f7f7 !important; color: #000000; background-position: initial initial !important; background-repeat: initial initial !important; "&gt;protected double getEasting()&#xD;
{&#xD;
  return 500000 + (K4 * p + K5 * POW(p, 3));&#xD;
}&#xD;
&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;清单 7 包含了一些示例输出，包括一些经纬度坐标和对应的 UTM 坐标：&lt;/p&gt;&lt;br /&gt;&lt;a name="listing7"&gt;&lt;strong style="font-size: 0.76em; font-weight: bold; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-family: arial, sans-serif; "&gt;清单 7. Latitude/longitude-to-UTM 测试值&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;table width="100%" cellpadding="0" cellspacing="0" border="0" style="font-size: 0.8em; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td  style="font-family: arial, nsimsun, sans-serif; background-color: #f7f7f7 !important; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; padding-top: 2px; padding-right: 2px; padding-bottom: 5px; padding-left: 2px; "&gt;&lt;pre  style="width: 694px; margin-top: 0px; margin-bottom: 0px; font-family: 'Andale Mono', 'Lucida Console', Monaco, Liberation, fixed, monospace; font-size: 11px; overflow-x: auto; overflow-y: auto; background-image: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: #f7f7f7 !important; color: #000000; background-position: initial initial !important; background-repeat: initial initial !important; "&gt;( 0.0000    0.0000  )     "31 N 166021 0"&#xD;
( 0.1300   -0.2324  )     "30 N 808084 14385"&#xD;
(-45.6456   23.3545 )     "34 G 683473 4942631"&#xD;
(-12.7650  -33.8765 )     "25 L 404859 8588690"&#xD;
(-80.5434  -170.6540)     "02 C 506346 1057742"&#xD;
( 90.0000   177.0000)     "60 Z 500000 9997964"&#xD;
(-90.0000  -177.0000)     "01 A 500000 2035"&#xD;
( 90.0000    3.0000 )     "31 Z 500000 9997964"&#xD;
( 23.4578  -135.4545)     "08 Q 453580 2594272"&#xD;
( 77.3450   156.9876)     "57 X 450793 8586116"&#xD;
(-89.3454  -48.9306 )     "22 A 502639 75072"&#xD;
&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;a name="3.3"&gt;&lt;span  style="font-size: 1.2em; font-weight: bold; "&gt;将 UTM 坐标转换为经纬度坐标&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;UTM 坐标到经纬度坐标的转换要比相反的转换过程容易一些。同样，&amp;#8220;The Universal Grids&amp;#8221;（请参阅&amp;nbsp;&lt;a href="http://www.ibm.com/developerworks/cn/java/j-coordconvert/#resources" style="color: #4c6e94; "&gt;参考资料&lt;/a&gt;）提供了转换公式。清单 8 展示了&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important; "&gt;convertUTMToLatLong()&lt;/code&gt;&amp;nbsp;方法的代码。该方法返回一个双数组，其中第一个元素（数组索引&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important; "&gt;[0]&lt;/code&gt;）表示纬度，而第二个元素（数组索引&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important; "&gt;[1]&lt;/code&gt;）表示经度。由于 UTM 字符串参数的精度为 1 米，因此经纬度坐标具有与之相同的精度。&lt;/p&gt;&lt;br /&gt;&lt;a name="listing8"&gt;&lt;strong style="font-size: 0.76em; font-weight: bold; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-family: arial, sans-serif; "&gt;清单 8. public double[] convertUTMToLatLong(String UTM)&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;table width="100%" cellpadding="0" cellspacing="0" border="0" style="font-size: 0.8em; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td  style="font-family: arial, nsimsun, sans-serif; background-color: #f7f7f7 !important; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; padding-top: 2px; padding-right: 2px; padding-bottom: 5px; padding-left: 2px; "&gt;&lt;pre  style="width: 694px; margin-top: 0px; margin-bottom: 0px; font-family: 'Andale Mono', 'Lucida Console', Monaco, Liberation, fixed, monospace; font-size: 11px; overflow-x: auto; overflow-y: auto; background-image: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: #f7f7f7 !important; color: #000000; background-position: initial initial !important; background-repeat: initial initial !important; "&gt;public double[] convertUTMToLatLong(String UTM)&#xD;
{&#xD;
  double[] latlon = { 0.0, 0.0 };&#xD;
  String[] utm = UTM.split(" ");&#xD;
  zone = Integer.parseInt(utm[0]);&#xD;
  String latZone = utm[1];&#xD;
  easting = Double.parseDouble(utm[2]);&#xD;
  northing = Double.parseDouble(utm[3]);&#xD;
  String hemisphere = getHemisphere(latZone);&#xD;
  double latitude = 0.0;&#xD;
  double longitude = 0.0;&#xD;
&#xD;
  if (hemisphere.equals("S"))&#xD;
  {&#xD;
    northing = 10000000 - northing;&#xD;
  }&#xD;
  setVariables();&#xD;
  latitude = 180 * (phi1 - fact1 * (fact2 + fact3 + fact4)) / Math.PI;&#xD;
&#xD;
  if (zone &amp;gt; 0)&#xD;
  {&#xD;
    zoneCM = 6 * zone - 183.0;&#xD;
  }&#xD;
  else&#xD;
  {&#xD;
    zoneCM = 3.0;&#xD;
  }&#xD;
&#xD;
  longitude = zoneCM - _a3;&#xD;
  if (hemisphere.equals("S"))&#xD;
  {&#xD;
    latitude = -latitude;&#xD;
  }&#xD;
&#xD;
  latlon[0] = latitude;&#xD;
  latlon[1] = longitude;&#xD;
  return latlon;&#xD;
&#xD;
}&#xD;
&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;code style="font-family: monospace; font-size: small !important; "&gt;convertUTMToLatLong()&lt;/code&gt;&amp;nbsp;方法将传入的 UTM 字符串（格式为&amp;nbsp;&lt;em&gt;34 G 683473 4942631&lt;/em&gt;）分解，并使用&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important; "&gt;getHemisphere()&lt;/code&gt;&amp;nbsp;方法确定字符串表示的位置所在的半球。这种确定非常简单：纬度区&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important; "&gt;A&lt;/code&gt;、&lt;code style="font-family: monospace; font-size: small !important; "&gt;C&lt;/code&gt;、&lt;code style="font-family: monospace; font-size: small !important; "&gt;D&lt;/code&gt;、&lt;code style="font-family: monospace; font-size: small !important; "&gt;E&lt;/code&gt;、&lt;code style="font-family: monospace; font-size: small !important; "&gt;F&lt;/code&gt;、&lt;code style="font-family: monospace; font-size: small !important; "&gt;G&lt;/code&gt;、&lt;code style="font-family: monospace; font-size: small !important; "&gt;H&lt;/code&gt;、&lt;code style="font-family: monospace; font-size: small !important; "&gt;J&lt;/code&gt;、&lt;code style="font-family: monospace; font-size: small !important; "&gt;K&lt;/code&gt;、&lt;code style="font-family: monospace; font-size: small !important; "&gt;L&lt;/code&gt;&amp;nbsp;和&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important; "&gt;M&lt;/code&gt;&amp;nbsp;位于南半球，而其余区位于北半球。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;清单 9 所示的&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important; "&gt;setVariables()&lt;/code&gt;&amp;nbsp;方法将设置计算所需的变量，然后立即计算纬度值。经度值则通过经度区计算。&lt;/p&gt;&lt;br /&gt;&lt;a name="listing9"&gt;&lt;strong style="font-size: 0.76em; font-weight: bold; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-family: arial, sans-serif; "&gt;清单 9. protected void setVariables()&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;table width="100%" cellpadding="0" cellspacing="0" border="0" style="font-size: 0.8em; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td  style="font-family: arial, nsimsun, sans-serif; background-color: #f7f7f7 !important; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; padding-top: 2px; padding-right: 2px; padding-bottom: 5px; padding-left: 2px; "&gt;&lt;pre  style="width: 694px; margin-top: 0px; margin-bottom: 0px; font-family: 'Andale Mono', 'Lucida Console', Monaco, Liberation, fixed, monospace; font-size: 11px; overflow-x: auto; overflow-y: auto; background-image: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: #f7f7f7 !important; color: #000000; background-position: initial initial !important; background-repeat: initial initial !important; "&gt;protected void setVariables()&#xD;
{&#xD;
  arc = northing / k0;&#xD;
  mu = arc&#xD;
      / (a * (1 - POW(e, 2) / 4.0 - 3 * POW(e, 4) / 64.0 - 5 * POW(e, 6) / 256.0));&#xD;
&#xD;
  ei = (1 - POW((1 - e * e), (1 / 2.0)))&#xD;
      / (1 + POW((1 - e * e), (1 / 2.0)));&#xD;
&#xD;
  ca = 3 * ei / 2 - 27 * POW(ei, 3) / 32.0;&#xD;
&#xD;
  cb = 21 * POW(ei, 2) / 16 - 55 * POW(ei, 4) / 32;&#xD;
  cc = 151 * POW(ei, 3) / 96;&#xD;
  cd = 1097 * POW(ei, 4) / 512;&#xD;
  phi1 = mu + ca * SIN(2 * mu) + cb * SIN(4 * mu) + cc * SIN(6 * mu) + cd&#xD;
      * SIN(8 * mu);&#xD;
&#xD;
  n0 = a / POW((1 - POW((e * SIN(phi1)), 2)), (1 / 2.0));&#xD;
&#xD;
  r0 = a * (1 - e * e) / POW((1 - POW((e * SIN(phi1)), 2)), (3 / 2.0));&#xD;
  fact1 = n0 * TAN(phi1) / r0;&#xD;
&#xD;
  _a1 = 500000 - easting;&#xD;
  dd0 = _a1 / (n0 * k0);&#xD;
  fact2 = dd0 * dd0 / 2;&#xD;
&#xD;
  t0 = POW(TAN(phi1), 2);&#xD;
  Q0 = e1sq * POW(COS(phi1), 2);&#xD;
  fact3 = (5 + 3 * t0 + 10 * Q0 - 4 * Q0 * Q0 - 9 * e1sq) * POW(dd0, 4) / 24;&#xD;
&#xD;
  fact4 = (61 + 90 * t0 + 298 * Q0 + 45 * t0 * t0 - 252 * e1sq - 3 * Q0&#xD;
          * Q0)&#xD;
          * POW(dd0, 6) / 720;&#xD;
&#xD;
  lof1 = _a1 / (n0 * k0);&#xD;
  lof2 = (1 + 2 * t0 + Q0) * POW(dd0, 3) / 6.0;&#xD;
  lof3 = (5 - 2 * Q0 + 28 * t0 - 3 * POW(Q0, 2) + 8 * e1sq + 24 * POW(t0, 2))&#xD;
          * POW(dd0, 5) / 120;&#xD;
  _a2 = (lof1 - lof2 + lof3) / COS(phi1);&#xD;
  _a3 = _a2 * 180 / Math.PI;&#xD;
&#xD;
}&#xD;
&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;code style="font-family: monospace; font-size: small !important; "&gt;setVariables()&lt;/code&gt;&amp;nbsp;使用以东和以北值设置所需的变量。这些都是类变量并且在&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important; "&gt;convertUTMToLatLong(String UTM)&lt;/code&gt;&amp;nbsp;方法中进行设置（参见&amp;nbsp;&lt;a href="http://www.ibm.com/developerworks/cn/java/j-coordconvert/#listing8" style="color: #4c6e94; "&gt;清单 8&lt;/a&gt;）。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;a name="3.4"&gt;&lt;span  style="font-size: 1.2em; font-weight: bold; "&gt;其他方法&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;a href="http://www.ibm.com/developerworks/cn/java/j-coordconvert/#download" style="color: #4c6e94; "&gt;源代码&lt;/a&gt;&amp;nbsp;还提供了其他公共和私有方法以及类。例如，提供了可对经纬度和 MGRS 进行坐标转换的方法和类，以及执行度和弧度之间转换的辅助方法，还提供了各种数学操作函数（例如 POW、SIN、COS 和 TAN）。&lt;/p&gt;&lt;div  style="clear: both; background-image: url(http://1.www.s81c.com/i/solid.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; height: 1px; background-position: initial initial; background-repeat: repeat no-repeat; "&gt;&lt;/div&gt;&lt;p  style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; font-size: 0.76em; clear: both; text-align: right; height: 15px; "&gt;&lt;a href="http://www.ibm.com/developerworks/cn/java/j-coordconvert/#ibm-pcon"  style="color: #4c6e94; display: inline; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 18px; text-decoration: none; background-image: url(http://1.www.s81c.com/i/v16/icons/u_bold.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; font-weight: bold; background-position: 0px -1px; background-repeat: no-repeat no-repeat; "&gt;回页首&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;a name="4"&gt;&lt;span  style="font-size: 1.5em; font-weight: bold; "&gt;结束语&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;本文简单介绍了有关世界坐标系统的一些知识，并提供了执行坐标转换的 Java 类。尽管没有详细介绍所有的坐标转换公式，您可以从&amp;nbsp;&lt;a href="http://www.ibm.com/developerworks/cn/java/j-coordconvert/#resources" style="color: #4c6e94; "&gt;参考资料&lt;/a&gt;&amp;nbsp;小节了解详细内容。一般来说，日常的开发工作并不需要了解这些理论 &amp;#8212;&amp;#8212; 只有极少数情况下需要，正如我最近遇到的坐标转换任务一样。&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;我需要在经纬度、UTM 和 MGRS 之间进行坐标转换，因此我做了些基础研究并使用 Java 类实现了转换。开发工作花费了我好几个小时的时间，我希望本文能帮助您在执行其他任务时节省时间，并且&amp;nbsp;&lt;code style="font-family: monospace; font-size: small !important; "&gt;CoordinateConversion&lt;/code&gt;&amp;nbsp;类能为您提供帮助。&lt;/p&gt;&lt;br /&gt;&lt;div  style="clear: both; background-image: url(http://1.www.s81c.com/i/solid.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; height: 1px; background-position: initial initial; background-repeat: repeat no-repeat; "&gt;&lt;/div&gt;&lt;p  style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; font-size: 0.76em; clear: both; text-align: right; height: 15px; "&gt;&lt;a href="http://www.ibm.com/developerworks/cn/java/j-coordconvert/#ibm-pcon"  style="color: #4c6e94; display: inline; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 18px; text-decoration: none; background-image: url(http://1.www.s81c.com/i/v16/icons/u_bold.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; font-weight: bold; background-position: 0px -1px; background-repeat: no-repeat no-repeat; "&gt;回页首&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;span  style="font-size: 1.5em; font-weight: bold; "&gt;&lt;a name="download"&gt;下载&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;table width="100%"  cellspacing="0" cellpadding="0" border="0" style="font-size: 0.8em; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; border-top-width: 0px; border-top-style: initial; border-top-color: initial; width: 708px; "&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th scope="col" style="font-family: arial, nsimsun, sans-serif; border-top-color: #cccccc; border-top-style: solid; border-top-width: 1px; padding-top: 8px; padding-right: 5px; padding-bottom: 8px; padding-left: 5px; vertical-align: top; background-image: url(http://1.www.s81c.com/i/v16/t/text-tabs-bg.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f7f8fc; text-align: left; background-position: initial initial; background-repeat: repeat no-repeat; "&gt;描述&lt;/th&gt;&lt;th scope="col" style="font-family: arial, nsimsun, sans-serif; border-top-color: #cccccc; border-top-style: solid; border-top-width: 1px; padding-top: 8px; padding-right: 5px; padding-bottom: 8px; padding-left: 5px; vertical-align: top; background-image: url(http://1.www.s81c.com/i/v16/t/text-tabs-bg.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f7f8fc; text-align: left; background-position: initial initial; background-repeat: repeat no-repeat; "&gt;名字&lt;/th&gt;&lt;th scope="col" style="font-family: arial, nsimsun, sans-serif; border-top-color: #cccccc; border-top-style: solid; border-top-width: 1px; padding-top: 8px; padding-right: 5px; padding-bottom: 8px; padding-left: 5px; vertical-align: top; background-image: url(http://1.www.s81c.com/i/v16/t/text-tabs-bg.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f7f8fc; text-align: left; background-position: initial initial; background-repeat: repeat no-repeat; "&gt;大小&lt;/th&gt;&lt;th scope="col" style="font-family: arial, nsimsun, sans-serif; border-top-color: #cccccc; border-top-style: solid; border-top-width: 1px; padding-top: 8px; padding-right: 5px; padding-bottom: 8px; padding-left: 5px; vertical-align: top; background-image: url(http://1.www.s81c.com/i/v16/t/text-tabs-bg.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #f7f8fc; text-align: left; background-position: initial initial; background-repeat: repeat no-repeat; "&gt;下载方法&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td  scope="row" style="font-family: arial, nsimsun, sans-serif; border-top-color: #cccccc; border-top-style: solid; padding-top: 8px; padding-right: 5px; padding-bottom: 8px; padding-left: 5px; vertical-align: top; "&gt;坐标转换源代码&lt;/td&gt;&lt;td nowrap="nowrap" style="font-family: arial, nsimsun, sans-serif; border-top-color: #cccccc; border-top-style: solid; padding-top: 8px; padding-right: 5px; padding-bottom: 8px; padding-left: 5px; vertical-align: top; "&gt;j-coordconvert.zip&lt;/td&gt;&lt;td nowrap="nowrap" style="font-family: arial, nsimsun, sans-serif; border-top-color: #cccccc; border-top-style: solid; padding-top: 8px; padding-right: 5px; padding-bottom: 8px; padding-left: 5px; vertical-align: top; "&gt;4KB&lt;/td&gt;&lt;td nowrap="nowrap" style="font-family: arial, nsimsun, sans-serif; border-top-color: #cccccc; border-top-style: solid; padding-top: 8px; padding-right: 5px; padding-bottom: 8px; padding-left: 5px; vertical-align: top; "&gt;&lt;a  href="http://www.ibm.com/developerworks/apps/download/index.jsp?contentid=253985&amp;amp;filename=j-coordconvert.zip&amp;amp;method=http&amp;amp;locale=zh_CN" style="color: #4c6e94; "&gt;HTTP&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;a href="http://www.ibm.com/developerworks/cn/whichmethod.html"  style="color: #4c6e94; background-image: url(http://dw1.s81c.com/i/v16/icons/fw.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; display: inline; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 18px; text-decoration: none; background-position: 0px 1px; background-repeat: no-repeat no-repeat; "&gt;关于下载方法的信息&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;a name="resources"&gt;&lt;span  style="font-size: 1.5em; font-weight: bold; "&gt;参考资料&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;strong style="font-size: 1em; font-weight: bold; "&gt;学习&lt;/strong&gt;&lt;/p&gt;&lt;ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; "&gt;&lt;li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; "&gt;您可以参阅本文在 developerWorks 全球站点上的&amp;nbsp;&lt;a href="http://www.ibm.com/developerworks/java/library/j-coordconvert/?S_CMP=cn-a-j&amp;amp;S_TACT=105AGX52" target="_blank" style="color: #4c6e94; "&gt;英文原文&lt;/a&gt;&amp;nbsp;。&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; "&gt;&amp;#8220;&lt;a href="http://www.gartner.com/it/page.jsp?id=495475" style="color: #4c6e94; "&gt;Gartner's 2006 emerging technologies hype cycle highlights key technology themes&lt;/a&gt;&amp;#8221;：这份来自 Gartner 的新闻简报包含了有关流行的位置服务的有趣信息。&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; "&gt;&amp;#8220;&lt;a href="http://earth-info.nga.mil/GandG/publications/tm8358.2/TM8358_2.pdf" style="color: #4c6e94; "&gt;The Universal Grids: Universal Transverse Mercator (UTM) and Universal Polar Stereographic (UPS)&lt;/a&gt;&amp;#8221;：该文档包含了 UTM 公式以及有关 UTM 的其他内容（文档格式为 PDF）。&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; "&gt;&amp;#8220;&lt;a href="http://www.ibm.com/developerworks/ibm/library/i-lbs/?S_CMP=cn-a-j&amp;amp;S_TACT=105AGX52" style="color: #4c6e94; "&gt;Location-based services&lt;/a&gt;&amp;#8221;（Valerie Bennett 和 Andrew Capella，developerWorks，2002 年 3 月）：介绍了基于位置服务背后的原理。&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; "&gt;&amp;#8220;&lt;a href="http://www.ibm.com/developerworks/cn/db2/library/techarticles/dm-0602lurie/" style="color: #4c6e94; "&gt;DB2 和开放源代码: 在 Linux 上使用 Google Maps API、DB2/Informix 和 PHP 创建地图&lt;/a&gt;&amp;#8221;（Marty Lurie 和 Aron Y. Lurie，developerWorks，2006 年 3 月）：本文包含了将 ZIP 代码转换为经纬度坐标的代码。&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; "&gt;&amp;#8220;&lt;a href="http://www.ibm.com/developerworks/cn/db2/library/techarticles/dm-0604uleman/index.html" style="color: #4c6e94; "&gt;利用 Spatial Extender：从纬度和经度列数据创建自动维护的空间表（DB2 版本）&lt;/a&gt;&amp;#8221;（Robert Uleman，developerWorks，2006 年 4 月）：了解 DB2 如何帮助您将原始的坐标数据转换为有用的信息。&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; "&gt;Wikipedia 是学习本文所介绍概念的好起点，包括：&lt;ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 1em; "&gt;&lt;li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; "&gt;&lt;a href="http://en.wikipedia.org/wiki/Geographic_coordinate_system" style="color: #4c6e94; "&gt;地理坐标系统&lt;/a&gt;&lt;/li&gt;&lt;li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; "&gt;&lt;a href="http://en.wikipedia.org/wiki/Universal_Transverse_Mercator_coordinate_system" style="color: #4c6e94; "&gt;统一横轴墨卡托投影坐标系统&lt;/a&gt;&lt;/li&gt;&lt;li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; "&gt;&lt;a href="http://en.wikipedia.org/wiki/Military_grid_reference_system" style="color: #4c6e94; "&gt;军事格网参考系&lt;/a&gt;&lt;/li&gt;&lt;li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; "&gt;&lt;a href="http://en.wikipedia.org/wiki/Transverse_Mercator" style="color: #4c6e94; "&gt;横轴墨卡托投影&lt;/a&gt;&lt;/li&gt;&lt;li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; "&gt;&lt;a href="http://en.wikipedia.org/wiki/Sextant" style="color: #4c6e94; "&gt;六分仪&lt;/a&gt;&lt;/li&gt;&lt;li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; "&gt;&lt;a href="http://en.wikipedia.org/wiki/Marine_chronometer" style="color: #4c6e94; "&gt;海洋精密计时仪&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/li&gt;&lt;li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; "&gt;浏览&amp;nbsp;&lt;a href="http://www.ibm.com/developerworks/apps/SendTo?bookstore=safari" style="color: #4c6e94; "&gt;技术书店&lt;/a&gt;，查阅有关本文所述主题及其他技术主题的图书。&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li id="" style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; "&gt;&lt;a href="http://www.ibm.com/developerworks/cn/java/" style="color: #4c6e94; "&gt;developerWorks Java 技术专区&lt;/a&gt;：提供了几百篇有关 Java 编程各个方面的文章。&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;strong style="font-size: 1em; font-weight: bold; "&gt;讨论&lt;/strong&gt;&lt;/p&gt;&lt;ul style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 5px; font-size: 0.76em; "&gt;&lt;li style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-right: 5px; padding-bottom: 3px; "&gt;查看&amp;nbsp;&lt;a href="http://www.ibm.com/developerworks/blogs/?S_CMP=cn-a-j&amp;amp;S_TACT=105AGX52" style="color: #4c6e94; "&gt;developerWorks blogs&lt;/a&gt;&amp;nbsp;并加入&amp;nbsp;&lt;a href="http://www.ibm.com/developerworks/community?S_CMP=cn-a-j&amp;amp;S_TACT=105AGX52" style="color: #4c6e94; "&gt;developerWorks 社区&lt;/a&gt;。&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0.3em; padding-right: 5px; padding-bottom: 0.7em; padding-left: 5px; font-size: 0.76em; "&gt;&lt;a name="author"&gt;&lt;span  style="font-size: 1.5em; font-weight: bold; "&gt;关于作者&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;div  style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; width: 710px; border-top-width: 1px; border-top-style: solid; border-top-color: #cccccc; "&gt;&lt;div  id="aeaoofnhgocdbnbeljkmbjdmhbcokfdb-mousedown" style="background-image: url(http://1.www.s81c.com/i/v16/t/container-gradient.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-bottom-color: #cccccc; border-bottom-style: solid; border-bottom-width: 1px; border-left-color: #cccccc; border-left-style: solid; border-left-width: 1px; border-right-color: #cccccc; border-right-style: solid; border-right-width: 1px; min-height: 55px; background-position: 0px 100%; background-repeat: repeat no-repeat; "&gt;&lt;img src="http://www.ibm.com/developerworks/i/p-ssalkosuo.jpg"  width="64" height="80" alt="Sami Salkosuo" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; padding-bottom: 0.7em; padding-top: 0.3em; padding-right: 5px; padding-left: 5px; margin-top: 5px !important; margin-right: 5px !important; margin-bottom: 5px !important; margin-left: 5px !important; float: left; " /&gt;&lt;a name="author1" style="width: 20px; height: 20px; text-indent: 20px; background-image: url(http://www.cnblogs.com/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;amp;file=anchor.gif); background-repeat: no-repeat no-repeat; "&gt;&lt;/a&gt;&lt;img  src="http://www.ibm.com/developerworks/i/authorrecogbadge_cont_v3.jpg" width="187" height="30" alt="developerWorks 投稿作者" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; padding-right: 5px; padding-left: 5px; padding-bottom: 0.7em; padding-top: 0.3em; margin-top: 5px !important; margin-right: 5px !important; margin-bottom: 5px !important; margin-left: 5px !important; float: left; " /&gt;&lt;p style="font-family: arial, nsimsun, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; font-size: 0.76em; "&gt;Sami Salkosuo 从 1999 年起一直在 IBM 工作。他是 Sun 认证的 Java 程序员，IBM 认证的 WebSphere Message Broker 解决方案开发人员，还是 IBM 认证的 WebSphere MQ 的解决方案设计师。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;img src="http://www.cnblogs.com/zhuor/aggbug/2172484.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/zhuor/archive/2011/09/09/2172484.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/zhuor/archive/2011/08/10/2134037.html</id><title type="text">WIN2003系统远程桌面多连接数设置终极大法</title><summary type="text">①:启动终端服务：在”运行”里输入 gpedit.msc 后按回车键,选择”计算机配置”——”管理模板”——”windows组件”——”终端服务”，把“限制连接数量”设置为”已启动”，最大连接数设为100，把”允许用户使用终①:启动终端服务：在”运行”里输入 gpedit.msc 后按回车键,选择”计算机配置”——”管理模板”——”windows组件”——”终端服务”，把“限制连接数量”设置为”已启动”，最大连接数设为100，把”允许用户使用终端服务远程连接”设置为”已启动”.②:安装终端服务器：首先打开”控制面板”——找到”添加／删除程序”——右边”添加／删除windows组件”,看到WIN</summary><published>2011-08-10T11:30:00Z</published><updated>2011-08-10T11:30:00Z</updated><author><name>卓如</name><uri>http://www.cnblogs.com/zhuor/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zhuor/archive/2011/08/10/2134037.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zhuor/archive/2011/08/10/2134037.html"/><content type="html">&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&amp;#9312;:启动终端服务：在&amp;#8221;运行&amp;#8221;里输入 gpedit.msc 后按回车键,选择&amp;#8221;计算机配置&amp;#8221;&amp;#8212;&amp;#8212;&amp;#8221;管理模板&amp;#8221;&amp;#8212;&amp;#8212;&amp;#8221;windows组件&amp;#8221;&amp;#8212;&amp;#8212;&amp;#8221;终端服务&amp;#8221;，把&amp;#8220;限制连接数量&amp;#8221;设置为&amp;#8221;已启动&amp;#8221;，最大连接数设为100，把&amp;#8221;允许用户使用终&lt;/div&gt;&lt;div&gt;&amp;#9312;:启动终端服务：在&amp;#8221;运行&amp;#8221;里输入 gpedit.msc 后按回车键,选择&amp;#8221;计算机配置&amp;#8221;&amp;#8212;&amp;#8212;&amp;#8221;管理模板&amp;#8221;&amp;#8212;&amp;#8212;&amp;#8221;windows组件&amp;#8221;&amp;#8212;&amp;#8212;&amp;#8221;终端服务&amp;#8221;，把&amp;#8220;限制连接数量&amp;#8221;设置为&amp;#8221;已启动&amp;#8221;，最大连接数设为100，把&amp;#8221;允许用户使用终端服务远程连接&amp;#8221;设置为&amp;#8221;已启动&amp;#8221;.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&amp;#9313;:安装终端服务器：首先打开&amp;#8221;控制面板&amp;#8221;&amp;#8212;&amp;#8212;找到&amp;#8221;添加／删除程序&amp;#8221;&amp;#8212;&amp;#8212;右边&amp;#8221;添加／删除windows组件&amp;#8221;,看到WINDOWS组件向导后,往下拉到倒数第一,二,在&amp;#8221;终端服务&amp;#8221;和&amp;#8221;终端服务授权&amp;#8221;前打上钩,然后选择下一步。&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&amp;#9314;：选择&amp;#8220;宽松安全模式&amp;#8221;，进入下一步。&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&amp;#9315;：选择&amp;#8220;我将在120天内指定许可证服务器（I）&amp;#8221;，进入下一步&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&amp;#9316;：选择&amp;#8220;每用户授权模式&amp;#8221;，进入下一步&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&amp;#9317;：选择下一步，完成安装，重启电脑.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&amp;#9318;：选择：&amp;#8221;开始&amp;#8221;&amp;#8212;&amp;#8221;程序&amp;#8221;&amp;#8212;&amp;#8221;管理工具&amp;#8221;&amp;#8212;-&amp;#8221;终端服务配置&amp;#8221;&amp;#8212;&amp;#8212;&amp;#8220;服务器设置&amp;#8221;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&amp;#9319;：双击&amp;#8220;限制每个用户使用一个会话&amp;#8221;，把&amp;#8220;限制每个用户使用一个会话&amp;#8221;勾选掉：否则有可能会被提出已登陆用户。&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&amp;#9320;：选择：&amp;#8221;开始&amp;#8221;&amp;#8212;&amp;#8221;程序&amp;#8221;&amp;#8212;&amp;#8221;管理工具&amp;#8221;&amp;#8212;-&amp;#8221;终端服务配置&amp;#8221;&amp;#8212;&amp;#8212;&amp;#8220;连接&amp;#8221;，双机&amp;#8220;RDP-Tcp&amp;#8221;，在弹出对话框中选择&amp;#8220;会话&amp;#8221;，选择&amp;#8220;结束已断开的会话&amp;#8221;为1分钟：&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;以下操作可以忽略：&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&amp;#9321;：使用3个远程桌面连接到本机，要输入用户名和密码登录进去，测试下是否连接成功，默认只能连接2个。&lt;/div&gt;&lt;div&gt;&amp;#9342;：建立一个远程桌面连接，输入用户名和密码，保存为test.rdp。&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&amp;#9343;：新建一个批处理文件test，代码如下：&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;FOR /L %%i IN (1,1,%1) DO start /b mstsc test.rdp&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;在命令行窗口中运行批处理文件：test 3，3代表开启的远程桌面连接数量。&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;come from:http://neti.wyww.net/html/JiShuWenDang/WoDeDianNao/345.html&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/zhuor/aggbug/2134037.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/zhuor/archive/2011/08/10/2134037.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/zhuor/archive/2011/07/21/2113258.html</id><title type="text">GIS理论（墨卡托投影、地理坐标系、地面分辨率、地图比例尺、Bing Maps Tile System）【转载】</title><summary type="text">墨卡托投影（Mercator Projection），又名“等角正轴圆柱投影”，荷兰地图学家墨卡托（Mercator）在1569年拟定，假设地球被围在一个中空的圆柱里，其赤道与圆柱相接触，然后再假想地球中心有一盏灯，把球面上的图形投影到圆柱体上，再把圆柱体展开，这就是一幅标准纬线为零度（即赤道）的“墨卡托投影”绘制出的世界地图。 一、墨卡托投影坐标系（Mercator Projection） 墨卡托投影以整个世界范围，赤道作为标准纬线，本初子午线作为中央经线，两者交点为坐标原点，向东向北为正，向西向南为负。南北极在地图的正下、上方，而东西方向处于地图的正右、左。 由于Mercator Proj</summary><published>2011-07-21T13:04:00Z</published><updated>2011-07-21T13:04:00Z</updated><author><name>卓如</name><uri>http://www.cnblogs.com/zhuor/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zhuor/archive/2011/07/21/2113258.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zhuor/archive/2011/07/21/2113258.html"/><content type="html">&lt;span style="font-family: Verdana, 'Lucida Grande', Arial, Helvetica, sans-serif; line-height: 18px; "&gt;&lt;p id="" style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;墨卡托投影（Mercator Projection），又名&amp;#8220;等角正轴圆柱投影&amp;#8221;，荷兰地图学家墨卡托（Mercator）在1569年拟定，假设地球被围在一个中空的圆柱里，其赤道与圆柱相接触，然后再假想地球中心有一盏灯，把球面上的图形投影到圆柱体上，再把圆柱体展开，这就是一幅标准纬线为零度（即赤道）的&amp;#8220;墨卡托投影&amp;#8221;绘制出的世界地图。&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;&lt;img border="0" src="https://vvvrsg.blu.livefilestore.com/y1m3GS9ErGA4eZ9foNWr_1mp_DFTSLifODX6utDVv50_yCHEqATnktUrpwWJ-5KyVVnmyWgKWv2OS4jg_WBAOIHIUbpX4U9YTrq7YJ3yI9PKIu8oUcsV7PeVEffqsYXvAjGRDnyWdx_Uq_JsHoM7jsCwQ/Bb259689_150afcdc-99eb-4296-9948-19c0a65727a3(en-us,MSDN_10).jpg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-style: initial; border-color: initial; "  alt="" /&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;&lt;strong&gt;一、墨卡托投影坐标系（Mercator Projection）&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;墨卡托投影以整个世界范围，赤道作为标准纬线，本初子午线作为中央经线，两者交点为坐标原点，向东向北为正，向西向南为负。南北极在地图的正下、上方，而东西方向处于地图的正右、左。&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;由于Mercator Projection在两极附近是趋于无限值得，因此它并没完整展现了整个世界，地图上最高纬度是85.05度。为了简化计算，我们采用球形映射，而不是椭球体形状。虽然采用Mercator Projection只是为了方便展示地图，需要知道的是，这种映射会给Y轴方向带来0.33%的误差。&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;&lt;img border="0" src="http://images.cnblogs.com/cnblogs_com/beniao/BingMaps/MKT.jpg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-style: initial; border-color: initial; "  alt="" /&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;由于赤道半径为6378137米，则赤道周长为2*PI*r&amp;nbsp;=&amp;nbsp;20037508.3427892，因此X轴的取值范围：[-20037508.3427892,20037508.3427892]。当纬度&amp;#966;接近两极，即90&amp;#176;时，Y值趋向于无穷。因此通常把Y轴的取值范围也限定在[-20037508.3427892,20037508.3427892]之间。因此在墨卡托投影坐标系（米）下的坐标范围是：最小为(-20037508.3427892,&amp;nbsp;-20037508.3427892&amp;nbsp;)到最大&amp;nbsp;坐标为(20037508.3427892,&amp;nbsp;20037508.3427892)。&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;&lt;strong&gt;二、地理坐标系（Geographical coordinates）&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;地理经度的取值范围是[-180,180]，纬度不可能到达90&amp;#176;，通过纬度取值范围为[20037508.3427892,20037508.3427892]反计算可得到纬度值为85.05112877980659。因此纬度取值范围是[-85.05112877980659，85.05112877980659]。因此，地理坐标系（经纬度）对应的范围是：最小地理坐标(-180,-85.05112877980659)，最大地理坐标(180,&amp;nbsp;85.05112877980659)。&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;&lt;strong&gt;三、地面分辨率（Ground&amp;nbsp;Resolution）&lt;br /&gt;&lt;/strong&gt;　　地面分辨率是以一个像素(pixel)代表的地面尺寸(米)。以微软Bing Maps为例，当Level为1时，图片大小为512*512（4个Tile），那么赤道空间分辨率为：赤道周长/512。其他纬度的空间分辨率则为&amp;nbsp;纬度圈长度/512，极端的北极则为0。Level为2时，赤道的空间分辨率为&amp;nbsp;赤道周长/1024，其他纬度为&amp;nbsp;纬度圈长度1024。很明显，Ground&amp;nbsp;Resolution取决于两个参数，缩放级别Level和纬度latitude&amp;nbsp;，Level决定像素的多少，latitude决定地面距离的长短。&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;&lt;strong&gt;地面分辨率的公式为，单位：米/像素：&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;ground&amp;nbsp;resolution&amp;nbsp;=&amp;nbsp;(cos(latitude&amp;nbsp;*&amp;nbsp;pi/180)&amp;nbsp;*&amp;nbsp;2&amp;nbsp;*&amp;nbsp;pi&amp;nbsp;*&amp;nbsp;6378137&amp;nbsp;meters)&amp;nbsp;/&amp;nbsp;(256&amp;nbsp;*&amp;nbsp;2level&amp;nbsp;pixels)　　&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;最低地图放大级别（1级），地图是512 x 512像素。每下一个放大级别，地图的高度和宽度分别乘于2：2级是1024 x 1024像素，3级是2048 x 2048像素，4级是4096 x 4096像素，等等。通常而言，地图的宽度和高度可以由以下式子计算得到：&lt;span style="font-family: 'Courier New'; "&gt;map width = map height = 256 * 2^&lt;/span&gt;level&lt;code&gt;&amp;nbsp;pixels&lt;/code&gt;&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;&lt;code&gt;&lt;/code&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;&lt;strong&gt;四、地图比例尺（Map&amp;nbsp;Scale）&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;地图比例尺是指测量相同目标时，地图上距离与实际距离的比例。通过地图分辨率在计算可知由Level可得到图片的像素大小，那么需要把其转换为以米为单位的距离，涉及到DPI（dot&amp;nbsp;per&amp;nbsp;inch），暂时可理解为类似的PPI（pixelper&amp;nbsp;inch），即每英寸代表多少个像素。256&amp;nbsp;*&amp;nbsp;2level&amp;nbsp;/&amp;nbsp;DPI&amp;nbsp;即得到相应的英寸inch，再把英寸inch除以0.0254转换为米。实地距离仍旧是：cos(latitude&amp;nbsp;*&amp;nbsp;pi/180)&amp;nbsp;*&amp;nbsp;2&amp;nbsp;*&amp;nbsp;pi&amp;nbsp;*&amp;nbsp;6378137&amp;nbsp;meters;&amp;nbsp;因此比例尺的公式为：&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;map&amp;nbsp;scale&amp;nbsp;=&amp;nbsp;256&amp;nbsp;*&amp;nbsp;2level&amp;nbsp;/&amp;nbsp;screen&amp;nbsp;dpi&amp;nbsp;/&amp;nbsp;0.0254&amp;nbsp;/&amp;nbsp;(cos(latitude&amp;nbsp;*&amp;nbsp;pi/180)&amp;nbsp;*&amp;nbsp;2&amp;nbsp;*&amp;nbsp;pi&amp;nbsp;*&amp;nbsp;6378137)&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;比例尺=&amp;nbsp;1&amp;nbsp;:&amp;nbsp;(cos(latitude&amp;nbsp;*&amp;nbsp;pi/180)&amp;nbsp;*&amp;nbsp;2&amp;nbsp;*&amp;nbsp;pi&amp;nbsp;*&amp;nbsp;6378137&amp;nbsp;*&amp;nbsp;screen&amp;nbsp;dpi)&amp;nbsp;/&amp;nbsp;(256&amp;nbsp;*&amp;nbsp;2level&amp;nbsp;*&amp;nbsp;0.0254)&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;地面分辨率和地图比例尺之间的关系：&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;map&amp;nbsp;scale&amp;nbsp;=&amp;nbsp;1&amp;nbsp;:&amp;nbsp;ground&amp;nbsp;resolution&amp;nbsp;*&amp;nbsp;screen&amp;nbsp;dpi&amp;nbsp;/&amp;nbsp;0.0254&amp;nbsp;meters/inch&lt;/p&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;&lt;strong&gt;缩放级别&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;&lt;strong&gt;地图宽度、高度(像素)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;&lt;strong&gt;地面分辨率(米/像素)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;&lt;strong&gt;地图比例尺(以96dpi为例)&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;1&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;512&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;78,271.5170&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;1 : 295,829,355.45&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;2&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;1,024&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;39,135.7585&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;1 : 147,914,677.73&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;3&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;2,048&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;19,567.8792&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;1 : 73,957,338.86&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;4&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;4,096&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;9,783.9396&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;1 : 36,978,669.43&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;5&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;8,192&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;4,891.9698&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;1 : 18,489,334.72&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;6&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;16,384&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;2,445.9849&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;1 : 9,244,667.36&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;7&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;32,768&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;1,222.9925&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;1 : 4,622,333.68&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;8&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;65,536&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;611.4962&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;1 : 2,311,166.84&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;9&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;131,072&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;305.7481&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;1 : 1,155,583.42&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;10&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;262,144&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;152.8741&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;1 : 577,791.71&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;11&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;524,288&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;76.4370&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;1 : 288,895.85&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;12&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;1,048,576&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;38.2185&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;1 : 144,447.93&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;13&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;2,097,152&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;19.1093&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;1 : 72,223.96&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;14&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;4,194,304&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;9.5546&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;1 : 36,111.98&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;15&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;8,388,608&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;4.7773&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;1 : 18,055.99&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;16&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;16,777,216&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;2.3887&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;1 : 9,028.00&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;17&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;33,554,432&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;1.1943&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;1 : 4,514.00&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;18&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;67,108,864&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;0.5972&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;1 : 2,257.00&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;19&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;134,217,728&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;0.2986&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;1 : 1,128.50&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;20&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;268,435,456&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;0.1493&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;1 : 564.25&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;21&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;536,870,912&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;0.0746&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;1 : 282.12&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;22&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;1,073,741,824&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;0.0373&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;1 : 141.06&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;23&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;2,147,483,648&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;0.0187&lt;/p&gt;&lt;/td&gt;&lt;td style="font-size: 12px; "&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;1 : 70.53&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;&lt;strong&gt;五、Bing Maps像素坐标系和地图图片编码&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;为了优化地图系统性能，提高地图下载和显示速度，所有地图都被分割成256 x 256像素大小的正方形小块。由于在每个放大级别下的像素数量都不一样，因此地图图片（Tile）的数量也不一样。每个tile都有一个XY坐标值，从左上角的(0, 0)至右下角的(2^level&amp;#8211;1, 2^level&amp;#8211;1)。例如在3级放大级别下，所有tile的坐标值范围为(0, 0)至(7, 7)，如下图：&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;&lt;img border="0" width="336" src="http://i.msdn.microsoft.com/Bb259689.209e5af1-34c1-45f6-ba24-41df3e1a1b10(en-us,MSDN.10).jpg" height="334" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-style: initial; border-color: initial; "  alt="" /&gt;&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;已知一个像素的XY坐标值时，我们很容易得到这个像素所在的Tile的XY坐标值：&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;&lt;code&gt;　　　　tileX = floor(pixelX / 256)　　&lt;/code&gt;&lt;code&gt;tileY = floor(pixelY / 256)&lt;/code&gt;&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;&lt;code&gt;&amp;nbsp;&lt;/code&gt;&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;为了简化索引和存储地图图片，每个tile的二维XY值被转换成一维字串，即四叉树键值（quardtree key，简称quadkey）。每个quadkey独立对应某个放大级别下的一个tile，并且它可以被用作数据库中B-tree索引值。为了将坐标值转换成quadkey，需要将Y和X坐标二进制值交错组合，并转换成4进制值及对应的字符串。例如，假设在放大级别为3时，tile的XY坐标值为（3，5），quadkey计算如下:&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;&lt;code&gt;　　tileX = 3 = 011（二进制）&lt;/code&gt;&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;&lt;code&gt;　　tileY = 5 = 101（二进制）&lt;/code&gt;&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;&lt;code&gt;　　quadkey = 100111（二进制）&lt;/code&gt;&amp;nbsp;&lt;code&gt;= 213（四进制）&lt;/code&gt;&amp;nbsp;&lt;code&gt;= &amp;#8220;213&amp;#8221;&lt;/code&gt;&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;Quadkey还有其他一些有意思的特性。第一，quadkey的长度等于该tile所对应的放大级别；第二，每个tile的quadkey的前几位和其父tile（上一放大级别所对应的tile）的quadkey相同，下图中，tile 2是tile 20至23的父tile，tile 13是tile 130至133的父级：&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;&lt;img border="0" width="623" src="http://i.msdn.microsoft.com/Bb259689.5cff54de-5133-4369-8680-52d2723eb756(en-us,MSDN.10).jpg" height="365" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-style: initial; border-color: initial; "  alt="" /&gt;　　&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;最后，quadkey提供的一维索引值通常显示了两个tile在XY坐标系中的相似性。换句话说，两个相邻的tile对应的quadkey非常接近。这对于优化数据库的性能非常重要，因为相邻的tile通常被同时请求显示，因此可以将这些tile存放在相同的磁盘区域中，以减少磁盘的读取次数。&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;下面是微软Bing Maps的TileSystem相关算法：&lt;/p&gt;&lt;div style="background-color: #f5f5f5; font-family: 'Courier New'; font-size: 13px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; word-break: break-all; overflow-x: auto; overflow-y: auto; max-width: 900px; "&gt;&lt;div id="aeaoofnhgocdbnbeljkmbjdmhbcokfdb-mousedown"&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;using&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;System;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;using&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;System.Text;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;namespace&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;Microsoft.MapPoint&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;class&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;TileSystem&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;const&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;double&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;EarthRadius&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #800080; "&gt;6378137&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;const&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;double&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;MinLatitude&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;-&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #800080; "&gt;85.05112878&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;const&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;double&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;MaxLatitude&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #800080; "&gt;85.05112878&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;const&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;double&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;MinLongitude&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;-&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #800080; "&gt;180&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;const&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;double&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;MaxLongitude&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #800080; "&gt;180&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&amp;nbsp;Clips&amp;nbsp;a&amp;nbsp;number&amp;nbsp;to&amp;nbsp;the&amp;nbsp;specified&amp;nbsp;minimum&amp;nbsp;and&amp;nbsp;maximum&amp;nbsp;values.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;param&amp;nbsp;name="n"&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;The&amp;nbsp;number&amp;nbsp;to&amp;nbsp;clip.&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;param&amp;nbsp;name="minValue"&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;Minimum&amp;nbsp;allowable&amp;nbsp;value.&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;param&amp;nbsp;name="maxValue"&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;Maximum&amp;nbsp;allowable&amp;nbsp;value.&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;returns&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;The&amp;nbsp;clipped&amp;nbsp;value.&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;double&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;Clip(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;double&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;n,&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;double&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;minValue,&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;double&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;maxValue)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;return&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;Math.Min(Math.Max(n,&amp;nbsp;minValue),&amp;nbsp;maxValue);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&amp;nbsp;Determines&amp;nbsp;the&amp;nbsp;map&amp;nbsp;width&amp;nbsp;and&amp;nbsp;height&amp;nbsp;(in&amp;nbsp;pixels)&amp;nbsp;at&amp;nbsp;a&amp;nbsp;specified&amp;nbsp;level&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&amp;nbsp;of&amp;nbsp;detail.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;param&amp;nbsp;name="levelOfDetail"&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;Level&amp;nbsp;of&amp;nbsp;detail,&amp;nbsp;from&amp;nbsp;1&amp;nbsp;(lowest&amp;nbsp;detail)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&amp;nbsp;to&amp;nbsp;23&amp;nbsp;(highest&amp;nbsp;detail).&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;returns&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;The&amp;nbsp;map&amp;nbsp;width&amp;nbsp;and&amp;nbsp;height&amp;nbsp;in&amp;nbsp;pixels.&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;uint&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;MapSize(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;int&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;levelOfDetail)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;return&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;uint&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #800080; "&gt;256&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;levelOfDetail;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&amp;nbsp;Determines&amp;nbsp;the&amp;nbsp;ground&amp;nbsp;resolution&amp;nbsp;(in&amp;nbsp;meters&amp;nbsp;per&amp;nbsp;pixel)&amp;nbsp;at&amp;nbsp;a&amp;nbsp;specified&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&amp;nbsp;latitude&amp;nbsp;and&amp;nbsp;level&amp;nbsp;of&amp;nbsp;detail.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;param&amp;nbsp;name="latitude"&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;Latitude&amp;nbsp;(in&amp;nbsp;degrees)&amp;nbsp;at&amp;nbsp;which&amp;nbsp;to&amp;nbsp;measure&amp;nbsp;the&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&amp;nbsp;ground&amp;nbsp;resolution.&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;param&amp;nbsp;name="levelOfDetail"&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;Level&amp;nbsp;of&amp;nbsp;detail,&amp;nbsp;from&amp;nbsp;1&amp;nbsp;(lowest&amp;nbsp;detail)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&amp;nbsp;to&amp;nbsp;23&amp;nbsp;(highest&amp;nbsp;detail).&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;returns&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;The&amp;nbsp;ground&amp;nbsp;resolution,&amp;nbsp;in&amp;nbsp;meters&amp;nbsp;per&amp;nbsp;pixel.&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;double&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;GroundResolution(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;double&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;latitude,&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;int&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;levelOfDetail)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;latitude&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;Clip(latitude,&amp;nbsp;MinLatitude,&amp;nbsp;MaxLatitude);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;return&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;Math.Cos(latitude&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;*&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;Math.PI&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;/&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #800080; "&gt;180&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;*&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #800080; "&gt;2&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;*&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;Math.PI&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;*&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;EarthRadius&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;/&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;MapSize(levelOfDetail);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&amp;nbsp;Determines&amp;nbsp;the&amp;nbsp;map&amp;nbsp;scale&amp;nbsp;at&amp;nbsp;a&amp;nbsp;specified&amp;nbsp;latitude,&amp;nbsp;level&amp;nbsp;of&amp;nbsp;detail,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&amp;nbsp;and&amp;nbsp;screen&amp;nbsp;resolution.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;param&amp;nbsp;name="latitude"&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;Latitude&amp;nbsp;(in&amp;nbsp;degrees)&amp;nbsp;at&amp;nbsp;which&amp;nbsp;to&amp;nbsp;measure&amp;nbsp;the&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&amp;nbsp;map&amp;nbsp;scale.&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;param&amp;nbsp;name="levelOfDetail"&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;Level&amp;nbsp;of&amp;nbsp;detail,&amp;nbsp;from&amp;nbsp;1&amp;nbsp;(lowest&amp;nbsp;detail)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&amp;nbsp;to&amp;nbsp;23&amp;nbsp;(highest&amp;nbsp;detail).&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;param&amp;nbsp;name="screenDpi"&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;Resolution&amp;nbsp;of&amp;nbsp;the&amp;nbsp;screen,&amp;nbsp;in&amp;nbsp;dots&amp;nbsp;per&amp;nbsp;inch.&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;returns&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;The&amp;nbsp;map&amp;nbsp;scale,&amp;nbsp;expressed&amp;nbsp;as&amp;nbsp;the&amp;nbsp;denominator&amp;nbsp;N&amp;nbsp;of&amp;nbsp;the&amp;nbsp;ratio&amp;nbsp;1&amp;nbsp;:&amp;nbsp;N.&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;double&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;MapScale(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;double&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;latitude,&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;int&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;levelOfDetail,&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;int&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;screenDpi)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;return&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;GroundResolution(latitude,&amp;nbsp;levelOfDetail)&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;*&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;screenDpi&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;/&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #800080; "&gt;0.0254&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&amp;nbsp;Converts&amp;nbsp;a&amp;nbsp;point&amp;nbsp;from&amp;nbsp;latitude/longitude&amp;nbsp;WGS-84&amp;nbsp;coordinates&amp;nbsp;(in&amp;nbsp;degrees)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&amp;nbsp;into&amp;nbsp;pixel&amp;nbsp;XY&amp;nbsp;coordinates&amp;nbsp;at&amp;nbsp;a&amp;nbsp;specified&amp;nbsp;level&amp;nbsp;of&amp;nbsp;detail.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;param&amp;nbsp;name="latitude"&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;Latitude&amp;nbsp;of&amp;nbsp;the&amp;nbsp;point,&amp;nbsp;in&amp;nbsp;degrees.&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;param&amp;nbsp;name="longitude"&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;Longitude&amp;nbsp;of&amp;nbsp;the&amp;nbsp;point,&amp;nbsp;in&amp;nbsp;degrees.&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;param&amp;nbsp;name="levelOfDetail"&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;Level&amp;nbsp;of&amp;nbsp;detail,&amp;nbsp;from&amp;nbsp;1&amp;nbsp;(lowest&amp;nbsp;detail)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&amp;nbsp;to&amp;nbsp;23&amp;nbsp;(highest&amp;nbsp;detail).&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;param&amp;nbsp;name="pixelX"&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;Output&amp;nbsp;parameter&amp;nbsp;receiving&amp;nbsp;the&amp;nbsp;X&amp;nbsp;coordinate&amp;nbsp;in&amp;nbsp;pixels.&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;param&amp;nbsp;name="pixelY"&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;Output&amp;nbsp;parameter&amp;nbsp;receiving&amp;nbsp;the&amp;nbsp;Y&amp;nbsp;coordinate&amp;nbsp;in&amp;nbsp;pixels.&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;void&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;LatLongToPixelXY(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;double&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;latitude,&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;double&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;longitude,&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;int&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;levelOfDetail,&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;out&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;int&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;pixelX,&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;out&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;int&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;pixelY)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;latitude&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;Clip(latitude,&amp;nbsp;MinLatitude,&amp;nbsp;MaxLatitude);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;longitude&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;Clip(longitude,&amp;nbsp;MinLongitude,&amp;nbsp;MaxLongitude);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;double&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;x&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;(longitude&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;+&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #800080; "&gt;180&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;/&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #800080; "&gt;360&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;double&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;sinLatitude&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;Math.Sin(latitude&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;*&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;Math.PI&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;/&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #800080; "&gt;180&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;double&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;y&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #800080; "&gt;0.5&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;-&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;Math.Log((&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #800080; "&gt;1&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;+&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;sinLatitude)&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;/&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #800080; "&gt;1&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;-&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;sinLatitude))&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;/&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #800080; "&gt;4&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;*&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;Math.PI);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;uint&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;mapSize&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;MapSize(levelOfDetail);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pixelX&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;int&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;)&amp;nbsp;Clip(x&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;*&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;mapSize&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;+&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #800080; "&gt;0.5&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #800080; "&gt;0&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;,&amp;nbsp;mapSize&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;-&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #800080; "&gt;1&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pixelY&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;int&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;)&amp;nbsp;Clip(y&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;*&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;mapSize&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;+&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #800080; "&gt;0.5&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #800080; "&gt;0&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;,&amp;nbsp;mapSize&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;-&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #800080; "&gt;1&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&amp;nbsp;Converts&amp;nbsp;a&amp;nbsp;pixel&amp;nbsp;from&amp;nbsp;pixel&amp;nbsp;XY&amp;nbsp;coordinates&amp;nbsp;at&amp;nbsp;a&amp;nbsp;specified&amp;nbsp;level&amp;nbsp;of&amp;nbsp;detail&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&amp;nbsp;into&amp;nbsp;latitude/longitude&amp;nbsp;WGS-84&amp;nbsp;coordinates&amp;nbsp;(in&amp;nbsp;degrees).&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;param&amp;nbsp;name="pixelX"&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;X&amp;nbsp;coordinate&amp;nbsp;of&amp;nbsp;the&amp;nbsp;point,&amp;nbsp;in&amp;nbsp;pixels.&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;param&amp;nbsp;name="pixelY"&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;Y&amp;nbsp;coordinates&amp;nbsp;of&amp;nbsp;the&amp;nbsp;point,&amp;nbsp;in&amp;nbsp;pixels.&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;param&amp;nbsp;name="levelOfDetail"&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;Level&amp;nbsp;of&amp;nbsp;detail,&amp;nbsp;from&amp;nbsp;1&amp;nbsp;(lowest&amp;nbsp;detail)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&amp;nbsp;to&amp;nbsp;23&amp;nbsp;(highest&amp;nbsp;detail).&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;param&amp;nbsp;name="latitude"&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;Output&amp;nbsp;parameter&amp;nbsp;receiving&amp;nbsp;the&amp;nbsp;latitude&amp;nbsp;in&amp;nbsp;degrees.&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;param&amp;nbsp;name="longitude"&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;Output&amp;nbsp;parameter&amp;nbsp;receiving&amp;nbsp;the&amp;nbsp;longitude&amp;nbsp;in&amp;nbsp;degrees.&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;void&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;PixelXYToLatLong(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;int&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;pixelX,&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;int&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;pixelY,&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;int&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;levelOfDetail,&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;out&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;double&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;latitude,&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;out&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;double&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;longitude)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;double&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;mapSize&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;MapSize(levelOfDetail);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;double&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;x&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;(Clip(pixelX,&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #800080; "&gt;0&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;,&amp;nbsp;mapSize&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;-&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #800080; "&gt;1&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;/&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;mapSize)&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;-&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #800080; "&gt;0.5&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;double&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;y&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #800080; "&gt;0.5&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;-&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;(Clip(pixelY,&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #800080; "&gt;0&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;,&amp;nbsp;mapSize&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;-&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #800080; "&gt;1&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;/&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;mapSize);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;latitude&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #800080; "&gt;90&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;-&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #800080; "&gt;360&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;*&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;Math.Atan(Math.Exp(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;-&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;y&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;*&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #800080; "&gt;2&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;*&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;Math.PI))&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;/&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;Math.PI;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;longitude&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #800080; "&gt;360&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;*&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;x;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&amp;nbsp;Converts&amp;nbsp;pixel&amp;nbsp;XY&amp;nbsp;coordinates&amp;nbsp;into&amp;nbsp;tile&amp;nbsp;XY&amp;nbsp;coordinates&amp;nbsp;of&amp;nbsp;the&amp;nbsp;tile&amp;nbsp;containing&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&amp;nbsp;the&amp;nbsp;specified&amp;nbsp;pixel.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;param&amp;nbsp;name="pixelX"&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;Pixel&amp;nbsp;X&amp;nbsp;coordinate.&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;param&amp;nbsp;name="pixelY"&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;Pixel&amp;nbsp;Y&amp;nbsp;coordinate.&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;param&amp;nbsp;name="tileX"&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;Output&amp;nbsp;parameter&amp;nbsp;receiving&amp;nbsp;the&amp;nbsp;tile&amp;nbsp;X&amp;nbsp;coordinate.&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;param&amp;nbsp;name="tileY"&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;Output&amp;nbsp;parameter&amp;nbsp;receiving&amp;nbsp;the&amp;nbsp;tile&amp;nbsp;Y&amp;nbsp;coordinate.&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;void&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;PixelXYToTileXY(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;int&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;pixelX,&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;int&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;pixelY,&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;out&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;int&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;tileX,&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;out&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;int&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;tileY)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tileX&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;pixelX&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;/&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #800080; "&gt;256&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tileY&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;pixelY&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;/&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #800080; "&gt;256&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&amp;nbsp;Converts&amp;nbsp;tile&amp;nbsp;XY&amp;nbsp;coordinates&amp;nbsp;into&amp;nbsp;pixel&amp;nbsp;XY&amp;nbsp;coordinates&amp;nbsp;of&amp;nbsp;the&amp;nbsp;upper-left&amp;nbsp;pixel&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&amp;nbsp;of&amp;nbsp;the&amp;nbsp;specified&amp;nbsp;tile.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;param&amp;nbsp;name="tileX"&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;Tile&amp;nbsp;X&amp;nbsp;coordinate.&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;param&amp;nbsp;name="tileY"&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;Tile&amp;nbsp;Y&amp;nbsp;coordinate.&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;param&amp;nbsp;name="pixelX"&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;Output&amp;nbsp;parameter&amp;nbsp;receiving&amp;nbsp;the&amp;nbsp;pixel&amp;nbsp;X&amp;nbsp;coordinate.&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;param&amp;nbsp;name="pixelY"&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;Output&amp;nbsp;parameter&amp;nbsp;receiving&amp;nbsp;the&amp;nbsp;pixel&amp;nbsp;Y&amp;nbsp;coordinate.&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;void&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;TileXYToPixelXY(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;int&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;tileX,&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;int&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;tileY,&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;out&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;int&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;pixelX,&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;out&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;int&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;pixelY)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pixelX&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;tileX&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;*&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #800080; "&gt;256&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;pixelY&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;tileY&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;*&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #800080; "&gt;256&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&amp;nbsp;Converts&amp;nbsp;tile&amp;nbsp;XY&amp;nbsp;coordinates&amp;nbsp;into&amp;nbsp;a&amp;nbsp;QuadKey&amp;nbsp;at&amp;nbsp;a&amp;nbsp;specified&amp;nbsp;level&amp;nbsp;of&amp;nbsp;detail.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;param&amp;nbsp;name="tileX"&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;Tile&amp;nbsp;X&amp;nbsp;coordinate.&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;param&amp;nbsp;name="tileY"&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;Tile&amp;nbsp;Y&amp;nbsp;coordinate.&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;param&amp;nbsp;name="levelOfDetail"&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;Level&amp;nbsp;of&amp;nbsp;detail,&amp;nbsp;from&amp;nbsp;1&amp;nbsp;(lowest&amp;nbsp;detail)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&amp;nbsp;to&amp;nbsp;23&amp;nbsp;(highest&amp;nbsp;detail).&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;returns&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;A&amp;nbsp;string&amp;nbsp;containing&amp;nbsp;the&amp;nbsp;QuadKey.&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;string&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;TileXYToQuadKey(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;int&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;tileX,&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;int&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;tileY,&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;int&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;levelOfDetail)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;StringBuilder&amp;nbsp;quadKey&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;new&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;StringBuilder();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;for&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;int&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;i&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;levelOfDetail;&amp;nbsp;i&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #800080; "&gt;0&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;;&amp;nbsp;i&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;--&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;char&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;digit&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #800000; "&gt;'&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #800000; "&gt;0&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #800000; "&gt;'&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;int&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;mask&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #800080; "&gt;1&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;(i&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;-&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #800080; "&gt;1&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;if&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;((tileX&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;amp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;mask)&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;!=&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #800080; "&gt;0&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;digit&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;++&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;if&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;((tileY&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;amp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;mask)&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;!=&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #800080; "&gt;0&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;digit&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;++&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;digit&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;++&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;quadKey.Append(digit);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;return&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;quadKey.ToString();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&amp;nbsp;Converts&amp;nbsp;a&amp;nbsp;QuadKey&amp;nbsp;into&amp;nbsp;tile&amp;nbsp;XY&amp;nbsp;coordinates.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;param&amp;nbsp;name="quadKey"&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;QuadKey&amp;nbsp;of&amp;nbsp;the&amp;nbsp;tile.&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;param&amp;nbsp;name="tileX"&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;Output&amp;nbsp;parameter&amp;nbsp;receiving&amp;nbsp;the&amp;nbsp;tile&amp;nbsp;X&amp;nbsp;coordinate.&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;param&amp;nbsp;name="tileY"&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;Output&amp;nbsp;parameter&amp;nbsp;receiving&amp;nbsp;the&amp;nbsp;tile&amp;nbsp;Y&amp;nbsp;coordinate.&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;param&amp;nbsp;name="levelOfDetail"&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #008000; "&gt;Output&amp;nbsp;parameter&amp;nbsp;receiving&amp;nbsp;the&amp;nbsp;level&amp;nbsp;of&amp;nbsp;detail.&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #808080; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;void&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;QuadKeyToTileXY(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;string&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;quadKey,&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;out&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;int&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;tileX,&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;out&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;int&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;tileY,&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;out&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;int&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;levelOfDetail)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tileX&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;tileY&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #800080; "&gt;0&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;levelOfDetail&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;quadKey.Length;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;for&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;int&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;i&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;levelOfDetail;&amp;nbsp;i&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #800080; "&gt;0&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;;&amp;nbsp;i&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;--&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;int&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;mask&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #800080; "&gt;1&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;(i&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;-&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #800080; "&gt;1&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;switch&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;(quadKey[levelOfDetail&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;-&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;i])&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;case&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #800000; "&gt;'&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #800000; "&gt;0&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #800000; "&gt;'&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;break&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;case&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #800000; "&gt;'&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #800000; "&gt;1&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #800000; "&gt;'&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tileX&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;|=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;mask;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;break&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;case&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #800000; "&gt;'&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #800000; "&gt;2&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #800000; "&gt;'&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tileY&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;|=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;mask;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;break&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;case&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #800000; "&gt;'&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #800000; "&gt;3&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #800000; "&gt;'&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tileX&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;|=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;mask;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tileY&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;|=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;mask;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;break&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;default&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;throw&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;new&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&amp;nbsp;ArgumentException(&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #800000; "&gt;"&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #800000; "&gt;Invalid&amp;nbsp;QuadKey&amp;nbsp;digit&amp;nbsp;sequence.&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #800000; "&gt;"&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-left: auto; margin-bottom: 5px; text-indent: 0px; "&gt;&lt;/p&gt;&lt;/span&gt;&lt;img src="http://www.cnblogs.com/zhuor/aggbug/2113258.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/zhuor/archive/2011/07/21/2113258.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/zhuor/archive/2011/07/21/2113250.html</id><title type="text">两点坐标间距离的算法以及验证【转】</title><summary type="text">看了通过两个点的经纬度计算距离这篇，据说是Google里扒来的算法，于是决定验证一下。东改西改改成了个VB的代码，通过计算发现非常正确。用30,120和31,121两个坐标点进行验证，同Mapinfo中计算的结果非常的相近。后来又把坐标系直接当成直角坐标系来计算，发现误差很大。于是仍然用直角坐标系方法来计算，给纬度加上了个0.86的参数，这样计算下来和结果相近。不上传文件了，直接贴代码了。代码如下：(五个TEXT，三个Button) ConstEARTH_RADIUS=6378.137ConstPi=3.1415926535898Functionrad(ByValdAsDouble)AsDou</summary><published>2011-07-21T13:00:00Z</published><updated>2011-07-21T13:00:00Z</updated><author><name>卓如</name><uri>http://www.cnblogs.com/zhuor/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zhuor/archive/2011/07/21/2113250.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zhuor/archive/2011/07/21/2113250.html"/><content type="html">&lt;div&gt;看了&lt;a href="http://panyee.cnblogs.com/archive/2006/07/04/442771.html" target="_blank"&gt;通过两个点的经纬度计算距离&lt;/a&gt;这篇，据说是Google里扒来的算法，于是决定验证一下。&lt;br /&gt;东改西改改成了个VB的代码，通过计算发现非常正确。&lt;br /&gt;用30,120和31,121两个坐标点进行验证，同Mapinfo中计算的结果非常的相近。&lt;br /&gt;后来又把坐标系直接当成直角坐标系来计算，发现误差很大。&lt;br /&gt;于是仍然用直角坐标系方法来计算，给纬度加上了个0.86的参数，这样计算下来和结果相近。&lt;br /&gt;不上传文件了，直接贴代码了。代码如下：(五个TEXT，三个Button)&lt;br /&gt; &lt;div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"&gt;&lt;img id="Code_Closed_Image_223855" style="display: none" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" width="11" align="top"  alt="" /&gt;&lt;img id="Code_Open_Image_223855" style="display: inline" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" width="11" align="top"  alt="" /&gt;&lt;span id="Code_Open_Text_223855" style="display: inline"&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /&gt;&lt;span style="color: #0000ff"&gt;Const&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;EARTH_RADIUS&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;6378.137&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;Const&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Pi&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;3.1415926535898&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;Function&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;rad(ByVal&amp;nbsp;d&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;Double&lt;/span&gt;&lt;span style="color: #000000"&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;Double&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /&gt;rad&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;d&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;*&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Pi&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;/&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;180&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;End&amp;nbsp;Function&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;Function&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;GetDistance(lat1&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;Double&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;lng1&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;Double&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;lat2&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;Double&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;lng2&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;Double&lt;/span&gt;&lt;span style="color: #000000"&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;Double&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;Dim&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;radlat1&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;Double&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;radlat2&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;Double&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;Dim&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;a&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;Double&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;b&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;Double&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;s&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;Double&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;Temp&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;As&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;Double&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /&gt;radlat1&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;rad(lat1)&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /&gt;radlat2&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;rad(lat2)&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /&gt;a&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;radlat1&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;-&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;radlat2&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /&gt;b&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;rad(lng1)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;-&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;rad(lng2)&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /&gt;Temp&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;Sqr&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;Sin&lt;/span&gt;&lt;span style="color: #000000"&gt;(a&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;/&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;2&lt;/span&gt;&lt;span style="color: #000000"&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;^&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;2&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;Cos&lt;/span&gt;&lt;span style="color: #000000"&gt;(radlat1)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;*&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;Cos&lt;/span&gt;&lt;span style="color: #000000"&gt;(radlat2)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;*&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;Sin&lt;/span&gt;&lt;span style="color: #000000"&gt;(b&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;/&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;2&lt;/span&gt;&lt;span style="color: #000000"&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;^&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;2&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /&gt;s&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;2&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;*&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;Atn&lt;/span&gt;&lt;span style="color: #000000"&gt;(Temp&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;/&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;Sqr&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #000000"&gt;-&lt;/span&gt;&lt;span style="color: #000000"&gt;Temp&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;*&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Temp&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;1&lt;/span&gt;&lt;span style="color: #000000"&gt;))&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000"&gt;'&lt;/span&gt;&lt;span style="color: #008000"&gt;没有反正弦函数，网上找了个&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;s&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;s&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;*&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;EARTH_RADIUS&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /&gt;GetDistance&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;s&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;End&amp;nbsp;Function&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;Private&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;Sub&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Command1_Click()&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /&gt;Text5.Text&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Str(GetDistance(Val(Text1.Text),&amp;nbsp;Val(Text2.Text),&amp;nbsp;Val(Text3.Text),&amp;nbsp;Val(Text4.Text)))&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;End&amp;nbsp;Sub&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;Private&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;Sub&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Command2_Click()&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /&gt;Text5.Text&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Str((&lt;/span&gt;&lt;span style="color: #0000ff"&gt;Sqr&lt;/span&gt;&lt;span style="color: #000000"&gt;((Val(Text3.Text)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;-&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Val(Text1.Text))&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;^&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;2&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(Val(Text4.Text)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;-&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Val(Text2.Text))&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;^&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;2&lt;/span&gt;&lt;span style="color: #000000"&gt;))&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;*&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;111.3199338&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;End&amp;nbsp;Sub&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /&gt;&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;Private&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;Sub&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Command3_Click()&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /&gt;Text5.Text&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Str((&lt;/span&gt;&lt;span style="color: #0000ff"&gt;Sqr&lt;/span&gt;&lt;span style="color: #000000"&gt;((Val(Text3.Text)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;*&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;0.86&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;-&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Val(Text1.Text)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;*&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;0.86&lt;/span&gt;&lt;span style="color: #000000"&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;^&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;2&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(Val(Text4.Text)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;-&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Val(Text2.Text))&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;^&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;2&lt;/span&gt;&lt;span style="color: #000000"&gt;))&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;*&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;111.3199338&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;End&amp;nbsp;Sub&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/zhuor/aggbug/2113250.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/zhuor/archive/2011/07/21/2113250.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/zhuor/archive/2011/07/21/2113238.html</id><title type="text">[转]判断一个点是否落在多边形内</title><summary type="text">转自：http://www.cnblogs.com/gis_gps/archive/2009/02/12/1389071.html备用一、背景:如何判断一个指定的经纬度点是否落在一个多边形区域内？二、实现代码(delphi)TypeTMyPoint=packedrecordX:double;Y:double;end;{*------------------------------------------------------------------------------判断指定的经纬度坐标点是否落在指定的多边形区域内@paramALon指定点的经度@paramALat指定点的纬度@para</summary><published>2011-07-21T12:47:00Z</published><updated>2011-07-21T12:47:00Z</updated><author><name>卓如</name><uri>http://www.cnblogs.com/zhuor/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zhuor/archive/2011/07/21/2113238.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zhuor/archive/2011/07/21/2113238.html"/><content type="html">&lt;span  style="font-family: verdana, 'ms song', 宋体, Arial, 微软雅黑, Helvetica, sans-serif; font-size: 12px; line-height: 18px; "&gt;&lt;p id="" style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-indent: 0px; "&gt;转自：&lt;/p&gt;&lt;/span&gt;&lt;span  style="font-family: verdana, 'ms song', 宋体, Arial, 微软雅黑, Helvetica, sans-serif; font-size: 12px; line-height: 18px; "&gt;&lt;a href="http://www.cnblogs.com/gis_gps/archive/2009/02/12/1389071.html"&gt;http://www.cnblogs.com/gis_gps/archive/2009/02/12/1389071.html&lt;/a&gt;&lt;/span&gt;&lt;p style="font-family: verdana, 'ms song', 宋体, Arial, 微软雅黑, Helvetica, sans-serif; font-size: 12px; line-height: 18px; margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-indent: 0px; "&gt;备用&lt;/p&gt;&lt;p style="font-family: verdana, 'ms song', 宋体, Arial, 微软雅黑, Helvetica, sans-serif; font-size: 12px; line-height: 18px; "&gt;&lt;/p&gt;&lt;p style="font-family: verdana, 'ms song', 宋体, Arial, 微软雅黑, Helvetica, sans-serif; font-size: 12px; line-height: 18px; "&gt;一、背景:&lt;/p&gt;&lt;p style="font-family: verdana, 'ms song', 宋体, Arial, 微软雅黑, Helvetica, sans-serif; font-size: 12px; line-height: 18px; margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-indent: 0px; "&gt;如何判断一个指定的经纬度点是否落在一个多边形区域内？&lt;/p&gt;&lt;p style="font-family: verdana, 'ms song', 宋体, Arial, 微软雅黑, Helvetica, sans-serif; font-size: 12px; line-height: 18px; margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-indent: 0px; "&gt;二、实现代码(delphi)&lt;/p&gt;&lt;p style="font-family: verdana, 'ms song', 宋体, Arial, 微软雅黑, Helvetica, sans-serif; font-size: 12px; line-height: 18px; margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-indent: 0px; "&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" id="aeaoofnhgocdbnbeljkmbjdmhbcokfdb-mousedown" style="line-height: 18px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; background-color: #f5f5f5; font-family: 'Courier New'; font-size: 13px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #cccccc; border-right-color: #cccccc; border-bottom-color: #cccccc; border-left-color: #cccccc; word-break: break-all; overflow-x: auto; overflow-y: auto; "&gt;&lt;img align="top" width="11" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" height="16" id="Code_Open_Image_142425" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-style: initial; border-color: initial; display: inline; " alt="" /&gt;&lt;span id="Code_Open_Text_142425" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; display: inline; "&gt;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;Type&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp;&amp;nbsp;TMyPoint&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #0000ff; "&gt;packed&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #0000ff; "&gt;record&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;X&amp;nbsp;:&amp;nbsp;double;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Y&amp;nbsp;:&amp;nbsp;double;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #0000ff; "&gt;end&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #008000; "&gt;{&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #008000; "&gt;*------------------------------------------------------------------------------&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp;&amp;nbsp;判断指定的经纬度坐标点是否落在指定的多边形区域内&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp;&amp;nbsp;@param&amp;nbsp;ALon&amp;nbsp;&amp;nbsp;&amp;nbsp;指定点的经度&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp;&amp;nbsp;@param&amp;nbsp;ALat&amp;nbsp;&amp;nbsp;&amp;nbsp;指定点的纬度&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp;&amp;nbsp;@param&amp;nbsp;APoints&amp;nbsp;&amp;nbsp;&amp;nbsp;指定多边形区域各个节点坐标&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp;&amp;nbsp;@return&amp;nbsp;True&amp;nbsp;落在范围内&amp;nbsp;False&amp;nbsp;不在范围内&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;------------------------------------------------------------------------------*&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #008000; "&gt;}&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #0000ff; "&gt;function&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;IsPtInPoly(ALon,&amp;nbsp;ALat:&amp;nbsp;double;&amp;nbsp;APoints:&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #0000ff; "&gt;array&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #0000ff; "&gt;of&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;TMyPoint):&amp;nbsp;Boolean;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #0000ff; "&gt;var&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp;&amp;nbsp;iSum,&amp;nbsp;iCount,&amp;nbsp;iIndex:&amp;nbsp;Integer;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp;&amp;nbsp;dLon1,&amp;nbsp;dLon2,&amp;nbsp;dLat1,&amp;nbsp;dLat2,&amp;nbsp;dLon:&amp;nbsp;double;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #0000ff; "&gt;begin&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;False;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #0000ff; "&gt;if&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;(Length(APoints)&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;lt;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #800080; "&gt;3&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #0000ff; "&gt;then&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #0000ff; "&gt;begin&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;False;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Exit;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #0000ff; "&gt;end&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp;&amp;nbsp;iSum&amp;nbsp;:&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #800080; "&gt;0&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp;&amp;nbsp;iCount&amp;nbsp;:&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;Length(APoints);&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #0000ff; "&gt;for&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;iIndex&amp;nbsp;:&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #800080; "&gt;0&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #0000ff; "&gt;to&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;iCount&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;-&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #800080; "&gt;1&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #0000ff; "&gt;do&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #0000ff; "&gt;begin&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #0000ff; "&gt;if&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;(iIndex&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;iCount&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;-&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #800080; "&gt;1&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #0000ff; "&gt;then&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #0000ff; "&gt;begin&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dLon1&amp;nbsp;:&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;APoints[iIndex].X;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dLat1&amp;nbsp;:&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;APoints[iIndex].Y;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dLon2&amp;nbsp;:&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;APoints[&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #800080; "&gt;0&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;].X;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dLat2&amp;nbsp;:&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;APoints[&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #800080; "&gt;0&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;].Y;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #0000ff; "&gt;end&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #0000ff; "&gt;else&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #0000ff; "&gt;begin&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dLon1&amp;nbsp;:&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;APoints[iIndex].X;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dLat1&amp;nbsp;:&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;APoints[iIndex].Y;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dLon2&amp;nbsp;:&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;APoints[iIndex&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;+&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #800080; "&gt;1&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;].X;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dLat2&amp;nbsp;:&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;APoints[iIndex&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;+&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #800080; "&gt;1&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;].Y;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #0000ff; "&gt;end&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #0000ff; "&gt;if&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;((ALat&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;gt;=&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;dLat1)&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #0000ff; "&gt;and&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;(ALat&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;lt;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;dLat2))&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #0000ff; "&gt;or&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;((ALat&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;gt;=&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;dLat2)&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #0000ff; "&gt;and&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;(ALat&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;lt;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;dLat1))&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #0000ff; "&gt;then&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #0000ff; "&gt;begin&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #0000ff; "&gt;if&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;(abs(dLat1&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;-&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;dLat2)&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;gt;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #800080; "&gt;0&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #0000ff; "&gt;then&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #0000ff; "&gt;begin&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dLon&amp;nbsp;:&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;dLon1&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;-&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;((dLon1&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;-&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;dLon2)&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;*&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;(dLat1&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;-&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;ALat))&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;/&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;(dLat1&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;-&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;dLat2);&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #0000ff; "&gt;if&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;(dLon&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;lt;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;ALon)&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #0000ff; "&gt;then&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Inc(iSum);&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #0000ff; "&gt;end&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #0000ff; "&gt;end&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #0000ff; "&gt;end&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #0000ff; "&gt;if&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;(iSum&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #0000ff; "&gt;mod&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #800080; "&gt;2&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;lt;&amp;gt;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #800080; "&gt;0&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #0000ff; "&gt;then&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Result&amp;nbsp;:&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;&amp;nbsp;True;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #0000ff; "&gt;end&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: 'Courier New'; line-height: 1.5; color: #000000; "&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;p style="font-family: verdana, 'ms song', 宋体, Arial, 微软雅黑, Helvetica, sans-serif; font-size: 12px; line-height: 18px; "&gt;&lt;/p&gt;&lt;p style="font-family: verdana, 'ms song', 宋体, Arial, 微软雅黑, Helvetica, sans-serif; font-size: 12px; line-height: 18px; "&gt;____________________________________________________________________________________________________________________________&lt;/p&gt;&lt;p style="font-family: verdana, 'ms song', 宋体, Arial, 微软雅黑, Helvetica, sans-serif; font-size: 12px; line-height: 18px; "&gt;C#算法：&lt;/p&gt;&lt;div&gt;&lt;div&gt;&lt;span style="font-size: 12px; line-height: 18px; "&gt;&amp;nbsp;&lt;span  style="white-space:pre"&gt;	&lt;/span&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /// &amp;nbsp;判断指定的经纬度坐标点是否落在指定的多边形区域内&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /// &amp;lt;param name="ALon"&amp;gt;指定点的经度&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /// &amp;lt;param name="ALat"&amp;gt;指定点的纬度&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /// &amp;lt;param name="APoints"&amp;gt;指定多边形区域各个节点坐标&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; /// &amp;lt;returns&amp;gt;True 落在范围内 False 不在范围内&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public bool isPtInPoly(double ALon, double ALat, Point[] APoints)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int iSum, iCount, iIndex;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; double dLon1, dLon2, dLat1, dLat2, dLon;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (APoints.Length &amp;lt; 3)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return false;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; iSum = 0;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; iCount = APoints.Length;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for (iIndex = 0; iIndex &amp;lt; iCount - 1; iIndex++)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (iIndex == iCount - 1)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dLon1 = APoints[iIndex].X;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dLat1 = APoints[iIndex].Y;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dLon2 = APoints[0].X;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dLat2 = APoints[0].Y;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dLon1 = APoints[iIndex].X;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dLat1 = APoints[iIndex].Y;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dLon2 = APoints[iIndex + 1].X;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dLat2 = APoints[iIndex + 1].Y;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (((ALat &amp;gt;= dLat1) &amp;amp;&amp;amp; (ALat &amp;lt; dLat2)) || ((ALat &amp;gt;= dLat2) &amp;amp;&amp;amp; (ALat &amp;lt; dLat1)))&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (Math.Abs(dLat1 - dLat2) &amp;gt; 0)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; dLon = dLon1 - ((dLon1 - dLon2) * (dLat1 - ALat)) / (dLat1 - dLat2);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (dLon &amp;lt; ALon)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; iSum++;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((iSum % 2) != 0)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return true;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return false;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: 12px; line-height: 18px;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="font-family: verdana, 'ms song', 宋体, Arial, 微软雅黑, Helvetica, sans-serif; font-size: 12px; line-height: 18px; "&gt;&lt;/div&gt;&lt;p&gt;&lt;font  face="verdana, 'ms song', 宋体, Arial, 微软雅黑, Helvetica, sans-serif"&gt;&lt;span  style="font-size: 12px; line-height: 18px; "&gt;&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;h1  id="aeaoofnhgocdbnbeljkmbjdmhbcokfdb-mousedown" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 5px; font-size: 16px; font-weight: bold; border-bottom-width: 1px; line-height: 1.5em; width: 936px; clear: both; border-top-width: 0px; border-right-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-family: verdana, 'ms song', 宋体, Arial, 微软雅黑, Helvetica, sans-serif; "&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/zhuor/aggbug/2113238.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/zhuor/archive/2011/07/21/2113238.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/zhuor/archive/2010/11/11/1874725.html</id><title type="text">wpf \silverlight  保存控件为图片</title><summary type="text">wpf:private void SaveToImage(FrameworkElement ui, string fileName) { System.IO.FileStream fs { System.IO.FileStream fs = new System.IO.FileStream(fileName, System.IO.FileMode.Create); RenderTargetBitmap bmp = new RenderTargetBitmap((int)ui.Width, (int)ui.Height, 96d, 96d, PixelFormats.Pbgra32); bmp.</summary><published>2010-11-11T03:50:00Z</published><updated>2010-11-11T03:50:00Z</updated><author><name>卓如</name><uri>http://www.cnblogs.com/zhuor/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zhuor/archive/2010/11/11/1874725.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zhuor/archive/2010/11/11/1874725.html"/><content type="html">&lt;p&gt;&lt;span  style="font-family: verdana, Arial, Helvetica; line-height: 18px; font-size: 12px; color: #494949; white-space: pre; "&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; wpf:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span  style="font-family: verdana, Arial, Helvetica; line-height: 18px; font-size: 12px; color: #494949; white-space: pre; "&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;private&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;void&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; SaveToImage(FrameworkElement ui, &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;string&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; fileName)&lt;br /&gt;        {&lt;br /&gt;            System.IO.FileStream fs &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span  style="line-height: 18px; font-size: 12px; white-space: pre; "&gt;&lt;font  face="'Courier New'"&gt;        {&lt;br /&gt;            System.IO.FileStream fs &lt;/font&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;new&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; System.IO.FileStream(fileName, System.IO.FileMode.Create);&lt;br /&gt;            RenderTargetBitmap bmp &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;new&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; RenderTargetBitmap((&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;int&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;)ui.Width, (&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;int&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;)ui.Height, 96d, 96d, PixelFormats.Pbgra32);&lt;br /&gt;            bmp.Render(ui);&lt;br /&gt;            BitmapEncoder encoder &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;=&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff; "&gt;new&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt; PngBitmapEncoder();&lt;br /&gt;            encoder.Frames.Add(BitmapFrame.Create(bmp));&lt;br /&gt;            encoder.Save(fs);&lt;br /&gt;            fs.Close();&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;p&gt;&lt;span  style="line-height: 18px; font-size: 12px; white-space: pre; "&gt;&lt;span style="font-family: 'Courier New'; color: #000000; "&gt;        }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;silverlight:&lt;/p&gt;&lt;p&gt;&lt;span  style="white-space:pre"&gt;	&lt;/span&gt;WriteableBitmap bitmap = new WriteableBitmap(控件名称, null);&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/zhuor/aggbug/1874725.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/zhuor/archive/2010/11/11/1874725.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/zhuor/archive/2010/11/11/1874697.html</id><title type="text">WPF 自定义快捷键命令（Command）(转)</title><summary type="text">命令简介 WPF 中的命令是通过实现ICommand接口创建的。ICommand 公开两个方法（Execute及CanExecute）和一个事件（CanExecuteChanged）。Execute 执行与命令关联的操作。CanExecute 确定是否可以在当前命令目标上执行命令。如果集中管理命令操作的命令管理器检测到命令源中发生了更改，此更改可能使得已引发但尚未由命令绑定执行的命令无效，则将引发...</summary><published>2010-11-11T03:24:00Z</published><updated>2010-11-11T03:24:00Z</updated><author><name>卓如</name><uri>http://www.cnblogs.com/zhuor/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zhuor/archive/2010/11/11/1874697.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zhuor/archive/2010/11/11/1874697.html"/><content type="html">&lt;span  style="font-family: verdana, ����, Arial; line-height: 19px; font-size: 13px; color: #333333; "&gt;&lt;h1 style="margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 5px; padding-right: 0px; padding-bottom: 5px; padding-left: 5px; font-weight: bold; color: white; background-color: #3399ff; font-size: 18px; "&gt;命令简介&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-indent: 0px; "&gt;WPF 中的命令是通过实现&amp;nbsp;&lt;a href="http://msdn.microsoft.com/zh-cn/library/system.windows.input.icommand.aspx" target="_blank" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; color: #3d81ee; border-bottom-width: 1px; border-bottom-style: dashed; border-bottom-color: #3d81ee; "&gt;ICommand&lt;/a&gt;&amp;nbsp;接口创建的。ICommand 公开两个方法（&lt;a href="http://msdn.microsoft.com/zh-cn/library/system.windows.input.icommand.execute.aspx" target="_blank" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; color: #3d81ee; border-bottom-width: 1px; border-bottom-style: dashed; border-bottom-color: #3d81ee; "&gt;Execute&lt;/a&gt;&amp;nbsp;及&amp;nbsp;&lt;a href="http://msdn.microsoft.com/zh-cn/library/system.windows.input.icommand.canexecute.aspx" target="_blank" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; color: #3d81ee; border-bottom-width: 1px; border-bottom-style: dashed; border-bottom-color: #3d81ee; "&gt;CanExecute&lt;/a&gt;）和一个事件（&lt;a href="http://msdn.microsoft.com/zh-cn/library/system.windows.input.icommand.canexecutechanged.aspx" target="_blank" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; color: #3d81ee; border-bottom-width: 1px; border-bottom-style: dashed; border-bottom-color: #3d81ee; "&gt;CanExecuteChanged&lt;/a&gt;）。Execute 执行与命令关联的操作。CanExecute 确定是否可以在当前命令目标上执行命令。如果集中管理命令操作的命令管理器检测到命令源中发生了更改，此更改可能使得已引发但尚未由命令绑定执行的命令无效，则将引发 CanExecuteChanged。ICommand 的 WPF 实现是&amp;nbsp;&lt;a href="http://msdn.microsoft.com/zh-cn/library/system.windows.input.routedcommand.aspx" target="_blank" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; color: #3d81ee; border-bottom-width: 1px; border-bottom-style: dashed; border-bottom-color: #3d81ee; "&gt;RoutedCommand&lt;/a&gt;&amp;nbsp;类。&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-indent: 0px; "&gt;WPF 中的主要输入源是鼠标、键盘、墨迹和路由命令。更加面向设备的输入使用 RoutedEvent 来通知应用程序页中的对象已发生了输入事件。RoutedCommand 没有不同。RoutedCommand 的 Execute 和 CanExecute 方法不包含命令的应用程序逻辑，而是引发这样的路由事件：沿元素树以隧道和冒泡形式传递，直到遇到具有&amp;nbsp;&lt;a href="http://msdn.microsoft.com/zh-cn/library/system.windows.input.commandbinding.aspx" target="_blank" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; color: #3d81ee; border-bottom-width: 1px; border-bottom-style: dashed; border-bottom-color: #3d81ee; "&gt;CommandBinding&lt;/a&gt;&amp;nbsp;的对象。CommandBinding 包含这些事件的处理程序，执行此命令的就是这些处理程序。&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-indent: 0px; "&gt;RoutedCommand 上的 Execute 方法在命令目标上引发&amp;nbsp;&lt;a href="http://msdn.microsoft.com/zh-cn/library/system.windows.input.commandmanager.previewexecuted.aspx" target="_blank" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; color: #3d81ee; border-bottom-width: 1px; border-bottom-style: dashed; border-bottom-color: #3d81ee; "&gt;PreviewExecuted&lt;/a&gt;&amp;nbsp;和 Executed 事件。RoutedCommand 上的 CanExecute 方法在命令目标上引发 CanExecute 和&amp;nbsp;&lt;a href="http://msdn.microsoft.com/zh-cn/library/system.windows.input.commandmanager.previewcanexecute.aspx" target="_blank" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; color: #3d81ee; border-bottom-width: 1px; border-bottom-style: dashed; border-bottom-color: #3d81ee; "&gt;PreviewCanExecute&lt;/a&gt;&amp;nbsp;事件。这些事件沿元素树以隧道和冒泡形式传递，直到遇到具有该特定命令的 CommandBinding 的对象。&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-indent: 0px; "&gt;WPF 提供了一组常用的路由命令，这组命令分布在几个类中：&lt;a href="http://msdn.microsoft.com/zh-cn/library/system.windows.input.mediacommands.aspx" target="_blank" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; color: #3d81ee; border-bottom-width: 1px; border-bottom-style: dashed; border-bottom-color: #3d81ee; "&gt;MediaCommands&lt;/a&gt;、&lt;a href="http://msdn.microsoft.com/zh-cn/library/system.windows.input.applicationcommands.aspx" target="_blank" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; color: #3d81ee; border-bottom-width: 1px; border-bottom-style: dashed; border-bottom-color: #3d81ee; "&gt;ApplicationCommands&lt;/a&gt;、&lt;a href="http://msdn.microsoft.com/zh-cn/library/system.windows.input.navigationcommands.aspx" target="_blank" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; color: #3d81ee; border-bottom-width: 1px; border-bottom-style: dashed; border-bottom-color: #3d81ee; "&gt;NavigationCommands&lt;/a&gt;、&lt;a href="http://msdn.microsoft.com/zh-cn/library/system.windows.input.componentcommands.aspx" target="_blank" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; color: #3d81ee; border-bottom-width: 1px; border-bottom-style: dashed; border-bottom-color: #3d81ee; "&gt;ComponentCommands&lt;/a&gt;&amp;nbsp;和&amp;nbsp;&lt;a href="http://msdn.microsoft.com/zh-cn/library/system.windows.documents.editingcommands.aspx" target="_blank" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; color: #3d81ee; border-bottom-width: 1px; border-bottom-style: dashed; border-bottom-color: #3d81ee; "&gt;EditingCommands&lt;/a&gt;。这些类仅包含 RoutedCommand 对象，而不包含命令的实现逻辑。实现逻辑由其上执行命令的对象负责。&lt;sup style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;font size="1" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;[1]&lt;/font&gt;&lt;/sup&gt;&lt;/p&gt;&lt;h1 style="margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 5px; padding-right: 0px; padding-bottom: 5px; padding-left: 5px; font-weight: bold; color: white; background-color: #3399ff; font-size: 18px; "&gt;自定义命令&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-indent: 0px; "&gt;除了上述WPF 自带的RoutedCommand，还可以使用&lt;a href="http://msdn.microsoft.com/zh-cn/library/system.windows.input.routeduicommand.aspx" target="_blank" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; color: #3d81ee; border-bottom-width: 1px; border-bottom-style: dashed; border-bottom-color: #3d81ee; "&gt;RoutedUICommand&lt;/a&gt;&amp;nbsp;类创建用户自定义命令，下面将通过一个实例详细讲解。首先新建一个WPF 项目，在其中加入一个TextBlock。目的是通过快捷键组合&amp;#8220;Ctrl+Alt+I&amp;#8221;和&amp;#8220;Ctrl+Alt+D&amp;#8221;改变字体大小，由&amp;#8220;Ctrl+Alt+C&amp;#8221;随机改变字体颜色。&lt;/p&gt;&lt;pre  style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffce; border-top-color: #c0c0c0; border-right-color: #c0c0c0; border-bottom-color: #c0c0c0; border-left-color: #c0c0c0; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: dashed; border-right-style: dashed; border-bottom-style: dashed; border-left-style: dashed; font-size: 9pt; line-height: 12pt; font-family: Consolas, 'Courier New', 宋体, Courier, mono, serif; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;&amp;lt;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: #a31515; "&gt;Grid&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;&amp;gt;&#xD;
    &amp;lt;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: #a31515; "&gt;TextBlock &lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: red; "&gt;x&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;:&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: red; "&gt;Name&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;="textBlock1" &lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: red; "&gt;Text&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;="Hello World" &lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: red; "&gt;HorizontalAlignment&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;="Center"&#xD;
               &lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: red; "&gt;FontSize&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;="10" &lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: red; "&gt;Margin&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;="42,29,46,41" &lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: red; "&gt;Width&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;="293" /&amp;gt;&#xD;
        &#xD;
&amp;lt;/&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: #a31515; "&gt;Grid&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;&amp;gt;&#xD;
&lt;/span&gt;&lt;/pre&gt;&lt;img  title="TextBlock" border="0" alt="TextBlock" src="http://images.cnblogs.com/cnblogs_com/gnielee/WindowsLiveWriter/719738ca03b9_98AA/TextBlock.png" width="421" height="280" style="margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-style: initial; border-color: initial; display: inline; " /&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-indent: 0px; "&gt;首先在Window.Resources 中定义两个RoutedUICommand，分别用于增加和减小字体尺寸。&lt;/p&gt;&lt;pre  style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffce; border-top-color: #c0c0c0; border-right-color: #c0c0c0; border-bottom-color: #c0c0c0; border-left-color: #c0c0c0; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: dashed; border-right-style: dashed; border-bottom-style: dashed; border-left-style: dashed; font-size: 9pt; line-height: 12pt; font-family: Consolas, 'Courier New', 宋体, Courier, mono, serif; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;&amp;lt;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: #a31515; "&gt;Window.Resources&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;&amp;gt;&#xD;
    &amp;lt;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: #a31515; "&gt;RoutedUICommand &lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: red; "&gt;x&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;:&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: red; "&gt;Key&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;="IncreaseFontSize" &lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: red; "&gt;Text&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;="Increase Font Size" /&amp;gt;&#xD;
    &amp;lt;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: #a31515; "&gt;RoutedUICommand &lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: red; "&gt;x&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;:&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: red; "&gt;Key&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;="DecreaseFontSize" &lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: red; "&gt;Text&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;="Decrease Font Size" /&amp;gt;&#xD;
&amp;lt;/&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: #a31515; "&gt;Window.Resources&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;&amp;gt;&#xD;
&lt;/span&gt;&lt;/pre&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-indent: 0px; "&gt;通过KeyBinding 为上面两个命令绑定快捷键，按键组合可使用&amp;#8220;+&amp;#8221;进行连接。下面代码分别通过&lt;a href="http://msdn.microsoft.com/zh-cn/library/system.windows.input.modifierkeys.aspx" target="_blank" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; color: #3d81ee; border-bottom-width: 1px; border-bottom-style: dashed; border-bottom-color: #3d81ee; "&gt;Modifiers&lt;/a&gt;+&lt;a href="http://msdn.microsoft.com/zh-cn/library/system.windows.input.key.aspx" target="_blank" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; color: #3d81ee; border-bottom-width: 1px; border-bottom-style: dashed; border-bottom-color: #3d81ee; "&gt;Key&lt;/a&gt;&amp;nbsp;和&lt;a href="http://msdn.microsoft.com/zh-cn/library/system.windows.input.keybinding.gesture.aspx" target="_blank" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; color: #3d81ee; border-bottom-width: 1px; border-bottom-style: dashed; border-bottom-color: #3d81ee; "&gt;Gesture&lt;/a&gt;&amp;nbsp;两种方式为定义快捷键组合方式。大家可以任选其一进行使用，MSDN 中建议使用Gesture 方式定义以免发生混淆。&lt;/p&gt;&lt;pre  style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffce; border-top-color: #c0c0c0; border-right-color: #c0c0c0; border-bottom-color: #c0c0c0; border-left-color: #c0c0c0; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: dashed; border-right-style: dashed; border-bottom-style: dashed; border-left-style: dashed; font-size: 9pt; line-height: 12pt; font-family: Consolas, 'Courier New', 宋体, Courier, mono, serif; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;&amp;lt;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: #a31515; "&gt;Window.InputBindings&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;&amp;gt;&#xD;
    &amp;lt;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: #a31515; "&gt;KeyBinding &lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: red; "&gt;Modifiers&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;="Ctrl+Alt" &lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: red; "&gt;Key&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;="I" &lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: red; "&gt;Command&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;="{&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: #a31515; "&gt;StaticResource &lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: red; "&gt;IncreaseFontSize&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;}"/&amp;gt;&#xD;
    &amp;lt;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: #a31515; "&gt;KeyBinding &lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: red; "&gt;Gesture&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;="Ctrl+Alt+D" &lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: red; "&gt;Command&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;="{&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: #a31515; "&gt;StaticResource &lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: red; "&gt;DecreaseFontSize&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;}"/&amp;gt;&#xD;
&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;&amp;lt;/&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: #a31515; "&gt;Window.InputBindings&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;&amp;gt;&#xD;
&lt;/span&gt;&lt;/pre&gt;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-indent: 0px; "&gt;接下来就要通过CanExecute和Excuted 为命令绑定相关的事件，CanExecute 负责判断能否执行命令（即Executed 定义的事件），Executed 就负责去执行用户定义的操作命令。&lt;/p&gt;&lt;pre  style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffce; border-top-color: #c0c0c0; border-right-color: #c0c0c0; border-bottom-color: #c0c0c0; border-left-color: #c0c0c0; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: dashed; border-right-style: dashed; border-bottom-style: dashed; border-left-style: dashed; font-size: 9pt; line-height: 12pt; font-family: Consolas, 'Courier New', 宋体, Courier, mono, serif; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;&amp;lt;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: #a31515; "&gt;Window.CommandBindings&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;&amp;gt;&#xD;
    &amp;lt;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: #a31515; "&gt;CommandBinding &lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: red; "&gt;Command&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;="{&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: #a31515; "&gt;StaticResource &lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: red; "&gt;IncreaseFontSize&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;}"&#xD;
                    &lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: red; "&gt;CanExecute&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;="CommandBinding_Increase_CanExecute"&#xD;
                    &lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: red; "&gt;Executed&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;="CommandBinding_Increase_Executed"/&amp;gt;&#xD;
    &amp;lt;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: #a31515; "&gt;CommandBinding &lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: red; "&gt;Command&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;="{&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: #a31515; "&gt;StaticResource &lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: red; "&gt;DecreaseFontSize&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;}"&#xD;
                    &lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: red; "&gt;CanExecute&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;="CommandBinding_Decrease_CanExecute"&#xD;
                    &lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: red; "&gt;Executed&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;="CommandBinding_Decrease_Executed"/&amp;gt;&#xD;
&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;&amp;lt;/&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: #a31515; "&gt;Window.CommandBindings&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;&amp;gt;&#xD;
&lt;/span&gt;&lt;/pre&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-indent: 0px; "&gt;至此，我们在XAML 中对命令的定义已经完成。下面进入到C# 中编写命令事件相关内容。扩大字体尺寸时通过CommandBinding_Increase_CanExecute 判断当前字体是否小于50，否则不会执行Executed 命令。若字体尺寸在50以内则通过CommandBinding_Increase_Executed 每次增加5。缩小尺寸时则不低于5。&lt;/p&gt;&lt;pre  style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffce; border-top-color: #c0c0c0; border-right-color: #c0c0c0; border-bottom-color: #c0c0c0; border-left-color: #c0c0c0; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: dashed; border-right-style: dashed; border-bottom-style: dashed; border-left-style: dashed; font-size: 9pt; line-height: 12pt; font-family: Consolas, 'Courier New', 宋体, Courier, mono, serif; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;private void &lt;/span&gt;CommandBinding_Increase_CanExecute(&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;object &lt;/span&gt;sender, &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: #2b91af; "&gt;CanExecuteRoutedEventArgs &lt;/span&gt;e)&#xD;
{&#xD;
    &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;if &lt;/span&gt;(textBlock1.FontSize &amp;gt; 50)&#xD;
    {&#xD;
        e.CanExecute = &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;false&lt;/span&gt;;&#xD;
    }&#xD;
    &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;else&#xD;
    &lt;/span&gt;{&#xD;
        e.CanExecute = &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;true&lt;/span&gt;;&#xD;
    }&#xD;
}&#xD;
&#xD;
&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;private void &lt;/span&gt;CommandBinding_Increase_Executed(&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;object &lt;/span&gt;sender, &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: #2b91af; "&gt;ExecutedRoutedEventArgs &lt;/span&gt;e)&#xD;
{&#xD;
    textBlock1.FontSize += 5;&#xD;
}&#xD;
&#xD;
&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;private void &lt;/span&gt;CommandBinding_Decrease_CanExecute(&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;object &lt;/span&gt;sender, &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: #2b91af; "&gt;CanExecuteRoutedEventArgs &lt;/span&gt;e)&#xD;
{&#xD;
    &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;if &lt;/span&gt;(textBlock1.FontSize &amp;lt;= 5)&#xD;
    {&#xD;
        e.CanExecute = &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;false&lt;/span&gt;;&#xD;
    }&#xD;
    &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;else&#xD;
    &lt;/span&gt;{&#xD;
        e.CanExecute = &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;true&lt;/span&gt;;&#xD;
    }&#xD;
}&#xD;
&#xD;
&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;private void &lt;/span&gt;CommandBinding_Decrease_Executed(&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;object &lt;/span&gt;sender, &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: #2b91af; "&gt;ExecutedRoutedEventArgs &lt;/span&gt;e)&#xD;
{&#xD;
    textBlock1.FontSize -= 5;&#xD;
}&lt;/pre&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-indent: 0px; "&gt;运行程序使用&amp;#8220;Ctrl+Alt+I&amp;#8221;或 &amp;#8220;Ctrl+Alt+D&amp;#8221;改变字体大小。&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-indent: 0px; "&gt;&lt;img  title="Increase" border="0" alt="Increase" src="http://images.cnblogs.com/cnblogs_com/gnielee/WindowsLiveWriter/719738ca03b9_98AA/Increase.png" width="486" height="413" style="margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-style: initial; border-color: initial; display: inline; " /&gt;&lt;/p&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-indent: 0px; "&gt;除了在XAML 中定义RoutedUICommand 我们也可以直接用C#定义，下面继续完成修改字体颜色的快捷键命令。新建一个CustomCommand 类，在其中加入如下代码定义ChangeFontColor 命令。&lt;/p&gt;&lt;pre  style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffce; border-top-color: #c0c0c0; border-right-color: #c0c0c0; border-bottom-color: #c0c0c0; border-left-color: #c0c0c0; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: dashed; border-right-style: dashed; border-bottom-style: dashed; border-left-style: dashed; font-size: 9pt; line-height: 12pt; font-family: Consolas, 'Courier New', 宋体, Courier, mono, serif; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;using &lt;/span&gt;System.Windows.Input;&#xD;
&#xD;
&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;namespace &lt;/span&gt;WpfUserControlTest&#xD;
{&#xD;
    &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;class &lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: #2b91af; "&gt;CustomCommand&#xD;
    &lt;/span&gt;{&#xD;
        &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;public static readonly &lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: #2b91af; "&gt;RoutedUICommand &lt;/span&gt;ChangeFontColor = &#xD;
            &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;new &lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: #2b91af; "&gt;RoutedUICommand&lt;/span&gt;(&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: #a31515; "&gt;"Change Font Color"&lt;/span&gt;, &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: #a31515; "&gt;"ChangeFontColor"&lt;/span&gt;, &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;typeof&lt;/span&gt;(&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: #2b91af; "&gt;MainWindow&lt;/span&gt;));&#xD;
    }&#xD;
}&lt;/pre&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-indent: 0px; "&gt;在MainWindow.xaml &amp;lt;Window&amp;gt; 中加入命名空间，以便后面调用ChangeFontColor 命令。&lt;/p&gt;&lt;pre  style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffce; border-top-color: #c0c0c0; border-right-color: #c0c0c0; border-bottom-color: #c0c0c0; border-left-color: #c0c0c0; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: dashed; border-right-style: dashed; border-bottom-style: dashed; border-left-style: dashed; font-size: 9pt; line-height: 12pt; font-family: Consolas, 'Courier New', 宋体, Courier, mono, serif; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: red; "&gt;xmlns&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;:&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: red; "&gt;c&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;="clr-namespace:WpfUserControlTest"&#xD;
&lt;/span&gt;&lt;/pre&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-indent: 0px; "&gt;在&amp;lt;Window.InputBindings&amp;gt;中为ChangeFontColor 添加快捷键组合。&lt;/p&gt;&lt;pre  style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffce; border-top-color: #c0c0c0; border-right-color: #c0c0c0; border-bottom-color: #c0c0c0; border-left-color: #c0c0c0; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: dashed; border-right-style: dashed; border-bottom-style: dashed; border-left-style: dashed; font-size: 9pt; line-height: 12pt; font-family: Consolas, 'Courier New', 宋体, Courier, mono, serif; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;&amp;lt;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: #a31515; "&gt;KeyBinding &lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: red; "&gt;Modifiers&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;="Control+Alt" &lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: red; "&gt;Key&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;="C" &lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: red; "&gt;Command&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;="c:CustomCommand.ChangeFontColor"/&amp;gt;&#xD;
&lt;/span&gt;&lt;/pre&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-indent: 0px; "&gt;在&amp;lt;Window.CommandBindings&amp;gt;中添加CanExecute、Excuted 命令事件。&lt;/p&gt;&lt;pre  style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffce; border-top-color: #c0c0c0; border-right-color: #c0c0c0; border-bottom-color: #c0c0c0; border-left-color: #c0c0c0; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: dashed; border-right-style: dashed; border-bottom-style: dashed; border-left-style: dashed; font-size: 9pt; line-height: 12pt; font-family: Consolas, 'Courier New', 宋体, Courier, mono, serif; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;&amp;lt;&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: #a31515; "&gt;CommandBinding &lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: red; "&gt;Command&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;="c:CustomCommand.ChangeFontColor"&#xD;
                &lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: red; "&gt;CanExecute&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;="CommandBinding_Color_CanExecute"&#xD;
                &lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: red; "&gt;Executed&lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;="CommandBinding_Color_Executed"/&amp;gt;&#xD;
&lt;/span&gt;&lt;/pre&gt;&lt;p style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-indent: 0px; "&gt;当用户点击&amp;#8220;Ctrl+Alt+C&amp;#8221;是触发命令事件，最近改变字体颜色。&lt;/p&gt;&lt;pre  style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffce; border-top-color: #c0c0c0; border-right-color: #c0c0c0; border-bottom-color: #c0c0c0; border-left-color: #c0c0c0; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: dashed; border-right-style: dashed; border-bottom-style: dashed; border-left-style: dashed; font-size: 9pt; line-height: 12pt; font-family: Consolas, 'Courier New', 宋体, Courier, mono, serif; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;private void &lt;/span&gt;CommandBinding_Color_CanExecute(&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;object &lt;/span&gt;sender, &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: #2b91af; "&gt;CanExecuteRoutedEventArgs &lt;/span&gt;e)&#xD;
{&#xD;
    e.CanExecute = &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;true&lt;/span&gt;;&#xD;
}&#xD;
&#xD;
&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;private void &lt;/span&gt;CommandBinding_Color_Executed(&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;object &lt;/span&gt;sender, &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: #2b91af; "&gt;ExecutedRoutedEventArgs &lt;/span&gt;e)&#xD;
{&#xD;
    &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: #2b91af; "&gt;Random &lt;/span&gt;rd = &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;new &lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: #2b91af; "&gt;Random&lt;/span&gt;();    &#xD;
    textBlock1.Foreground = &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;new &lt;/span&gt;&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: #2b91af; "&gt;SolidColorBrush&lt;/span&gt;(&#xD;
        &lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: #2b91af; "&gt;Color&lt;/span&gt;.FromRgb(&#xD;
            (&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;byte&lt;/span&gt;)rd.Next(0,255),&#xD;
            (&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;byte&lt;/span&gt;)rd.Next(0, 255),&#xD;
            (&lt;span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 1.4; color: blue; "&gt;byte&lt;/span&gt;)rd.Next(0, 255))&#xD;
            );&#xD;
}&lt;/pre&gt;&lt;img  title="Color" border="0" alt="Color" src="http://images.cnblogs.com/cnblogs_com/gnielee/WindowsLiveWriter/719738ca03b9_98AA/Color.png" width="486" height="405" style="margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-style: initial; border-color: initial; display: inline; " /&gt;&amp;nbsp;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;h1 style="margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 5px; padding-right: 0px; padding-bottom: 5px; padding-left: 5px; font-weight: bold; color: white; background-color: #3399ff; font-size: 18px; "&gt;源代码下载&lt;/strong&gt;&lt;/p&gt;&lt;a href="http://cid-c75f4e27adfe5bbc.office.live.com/self.aspx/GnieTech/WpfCustomHotkeyCommand.zip" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; color: #3d81ee; border-bottom-width: 1px; border-bottom-style: dashed; border-bottom-color: #3d81ee; "&gt;WpfCustomHotkeyCommand.zip&lt;/a&gt;&lt;p id="" style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-indent: 0px; "&gt;[1]引自：&lt;a href="http://msdn.microsoft.com/zh-cn/library/ms752308.aspx" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; color: #3d81ee; border-bottom-width: 1px; border-bottom-style: dashed; border-bottom-color: #3d81ee; "&gt;&lt;font color="#0066cc" id="" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;http://msdn.microsoft.com/zh-cn/library/ms752308.aspx&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;div id="MySignature" style="margin-top: 10px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;div  id="aeaoofnhgocdbnbeljkmbjdmhbcokfdb-mousedown" style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #dbeaff; border-top-color: #c0c0c0; border-right-color: #c0c0c0; border-bottom-color: #c0c0c0; border-left-color: #c0c0c0; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; font-size: 9pt; line-height: 15pt; background-position: initial initial; background-repeat: initial initial; "&gt;作者：李敬然（Gnie）&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;出处：&lt;a href="http://www.cnblogs.com/gnielee/" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; color: #3d81ee; border-bottom-width: 1px; border-bottom-style: dashed; border-bottom-color: #3d81ee; "&gt;{GnieTech}&lt;/a&gt;&amp;nbsp;（http://www.cnblogs.com/gnielee/）&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;版权声明：本文的版权归作者与博客园共有。转载时须注明本文的详细链接，否则作者将保留追究其法律责任。&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;img src="http://www.cnblogs.com/zhuor/aggbug/1874697.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/zhuor/archive/2010/11/11/1874697.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
