青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

我希望你是我獨家記憶

一段永遠封存的記憶,隨風而去
posts - 263, comments - 31, trackbacks - 0, articles - 3
   :: 首頁 :: 新隨筆 ::  :: 聚合  :: 管理

google map api 編碼折線算法

Posted on 2009-08-13 17:21 Hero 閱讀(751) 評論(0)  編輯 收藏 引用

今天用C#寫了google map api 編碼折線算法,C#用的很不習慣,感覺還是C++的好用,中文的翻譯讓我很難讀懂,如果有錯誤,請指正

http://code.google.com/intl/zh-CN/apis/maps/documentation/polylinealgorithm.html

  1 using System;
  2 using System.Collections.Generic;
  3 using System.Text;
  4 
  5 namespace ConsoleApplication1
  6 {
  7     class Program
  8     {
  9         static string trans( double source )
 10         {
 11             //獲得絕對值
 12             int absSource ;
 13             if ( source >= 0 )
 14             {
 15                 absSource = (int)( source * 100000 + 0.5 );
 16             }
 17             else
 18             {
 19                 absSource = (int)( source * 100000 - 0.5 ) ;
 20             }
 21             absSource = Math.Abs( absSource );
 22             //Console.WriteLine( absSource );
 23 
 24             //獲得二進制
 25             StringBuilder binstring1 = new StringBuilder();
 26             binstring1.Append( Convert.ToString( absSource, 2 ) );
 27             //Console.WriteLine( binstring1 );
 28 
 29             StringBuilder binstring2 = new StringBuilder();
 30             for ( int i = 0; i < 32-binstring1.Length; i++ )
 31             {
 32                 binstring2.Append( "0" );
 33             }
 34             binstring2.Append( binstring1 ) ;
 35             //Console.WriteLine( binstring2 ) ;
 36 
 37             //如果是負數 -- 取反加1
 38             if ( source < 0 )
 39             {
 40                 //Console.WriteLine( "負數 -- 取反加一" );
 41                 for ( int i = 0; i < binstring2.Length; i++ )
 42                 {
 43                     if ( '0' == binstring2[i] ) binstring2[i] = '1';
 44                     else binstring2[i] = '0';
 45                 }
 46                 //Console.WriteLine( binstring2 ) ;
 47                 int carry = 1
 48                 //binstring2[binstring2.Length - 1]++;
 49                 for ( int i = binstring2.Length - 1 ; i >= 0; i-- )
 50                 {
 51                     while( carry > 0 )
 52                     {
 53                         carry = carry - 1 ;
 54                         binstring2[i] ++ ;
 55                     }
 56 
 57                     if ( '2' == binstring2[i] )
 58                     {
 59                         carry = 1;
 60                         binstring2[i] = '0';
 61                     }
 62                     else
 63                     {
 64                         carry = 0;
 65                     }
 66                 }
 67                 if( carry > 0 )
 68                 {
 69                     binstring2.Insert( 0'1' ) ;
 70                 }
 71                 //Console.WriteLine( binstring2 ) ;
 72             }//取反加一
 73 
 74             //變換二進制值
 75             binstring2.Append( "0" ) ;
 76             //Console.WriteLine( binstring2 ) ;
 77 
 78             //如果原來是負數 -- 對編碼求反
 79             if( source < 0 )
 80             {
 81                 forint i=0; i<binstring2.Length; i++ )
 82                 {
 83                     if'0' == binstring2[i] ) binstring2[i] = '1' ;
 84                     else binstring2[i] = '0' ;
 85                 }
 86 
 87                 //Console.WriteLine( "負數 -- 對編碼求反" ) ;
 88                 //Console.WriteLine( binstring2 ) ;
 89             }
 90 
 91             //從右側開始五五分組
 92             int[] num = new int[10] ; int cnum = 0 ;
 93             string[] strnum = new string[10] ;
 94 
 95             string binstr = binstring2.ToString();
 96             forint i=binstring2.Length, count=0; i>=0; i--, count++ )
 97             {
 98                 if5 == count || 0 == i )
 99                 {                    
100                     //strnum[cnum++] = binstring1.ToString() ;
101                     binstring1.Remove( 0, binstring1.Length ) ;
102                     binstring1.Append( binstr, i, count );
103                     strnum[cnum++= binstring1.ToString();
104                     //Console.WriteLine( strnum[cnum-1] ) ;
105                     count = 0;
106                 }
107             }
108 
109             //去除最后的 0 塊
110             forint i=cnum-1; i>0; i-- )
111             {
112                 bool del = true ;
113                 foreach ( char var in strnum[i] )
114                 {
115                     if( var != '0' ) del = false ;
116                 }
117 
118                 if( del ) cnum-- ;
119                 else break ;
120             }
121             //Console.WriteLine( cnum ) ;
122             
123 
124             //與0x20或
125             forint i=0; i<cnum; i++ )
126             {
127                 if( i != cnum - 1 )
128                 {
129                     num[i] = Convert.ToInt32( strnum[i], 2 ) ;
130                     num[i] = num[i] | 0x20 ;
131                 }
132                 else
133                 {
134                     num[i] = Convert.ToInt32( strnum[i], 2 ) ;
135                 }
136                 
137                 num[i] += 63 ;
138                 //Console.WriteLine( num[i] ) ;
139             }
140 
141             StringBuilder restring = new StringBuilder() ;
142             for ( int i = 0; i < cnum; i++ )
143             {
144                 restring.Append( Convert.ToChar( num[i] ) );
145             }
146 
147             return restring.ToString();           
148         }
149        
150 
151         static void Main( string[] args )
152         {            
153             //string input = null ;
154             //while ( (input = Console.ReadLine().Trim().ToUpper() ) != "Q" )
155             //{
156             //    double x = Convert.ToDouble( input.Trim() );
157             //   Console.WriteLine( trans( x ) );
158             //}
159 
160             Console.WriteLine( trans(38.5) );
161             Console.WriteLine( trans(-120.2) );
162             Console.WriteLine( trans( 40.7-38.5 ) );
163             Console.WriteLine( trans( -120.95 - (-120.2) ) );
164             Console.WriteLine( trans( 43.252-40.7 ) );
165             Console.WriteLine( trans( -126.453-(-120.95) ) );
166         }
167     }
168 }

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            午夜精品www| 99视频精品全部免费在线| 午夜亚洲激情| 欧美激情一区| 午夜精品久久久久久久99热浪潮| 久热精品视频在线观看| 国产亚洲欧美日韩一区二区| 中文国产一区| 亚洲国产视频直播| 午夜在线成人av| 国产精品超碰97尤物18| 一区二区黄色| 亚洲美女中文字幕| 欧美日韩久久| 一区二区三区国产精品| 亚洲人人精品| 欧美极品影院| 99热精品在线观看| 日韩视频一区二区| 欧美私人网站| 亚洲欧美三级伦理| 午夜精品美女久久久久av福利| 国产精品国色综合久久| 亚洲欧美日韩在线不卡| 亚洲欧美日韩国产精品| 国产一区二区三区奇米久涩| 久久久夜精品| 美女999久久久精品视频| 亚洲国产美女| 亚洲欧洲综合| 国产精品私房写真福利视频 | 亚洲午夜极品| 夜夜爽99久久国产综合精品女不卡| 欧美激情1区2区3区| 99天天综合性| 亚洲图片在线观看| 亚洲手机在线| 亚洲午夜久久久久久久久电影网| 欧美性开放视频| 亚洲女优在线| 欧美一区在线看| 亚洲成在人线av| 亚洲日本一区二区三区| 国产精品久久国产精麻豆99网站| 欧美一级午夜免费电影| 久久精品视频导航| 亚洲精品一区二区三区不| 亚洲精品视频免费观看| 国产精品乱子乱xxxx| 久久亚洲一区| 欧美激情性爽国产精品17p| 亚洲综合国产| 久久亚洲美女| 一道本一区二区| 久久精品国产999大香线蕉| 亚洲精品免费看| 亚洲综合视频一区| 亚洲日本中文| 午夜日韩电影| 在线一区日本视频| 久久夜色精品国产亚洲aⅴ | 伊人成人开心激情综合网| 亚洲黄一区二区三区| 国产精品自拍在线| 亚洲精品1区2区| 国产午夜一区二区三区| 亚洲激情小视频| 国产女人18毛片水18精品| 亚洲级视频在线观看免费1级| 国产无一区二区| 日韩视频在线免费| 亚洲激情一区| 欧美一区二区三区在线| 中文在线不卡| 欧美福利在线观看| 久久久久久色| 国产精品久久久久久久午夜 | 亚洲国产一二三| 国内精品久久久久久久影视蜜臀 | 一区二区三区高清在线| 最新中文字幕一区二区三区| 久久xxxx| 久久久久一区二区| 国产欧美一区二区三区在线老狼| 日韩视频中午一区| 亚洲免费高清| 男女激情视频一区| 蜜臀av一级做a爰片久久| 国产午夜精品麻豆| 亚洲欧美综合| 欧美一区亚洲| 国产精品美女一区二区| 亚洲精品一区二区三区婷婷月 | 亚洲影院一区| 在线一区亚洲| 欧美日韩在线视频一区| 亚洲日本乱码在线观看| 亚洲乱码国产乱码精品精天堂| 久久这里有精品视频| 蜜桃av一区二区三区| 伊甸园精品99久久久久久| 久久理论片午夜琪琪电影网| 久久久亚洲国产美女国产盗摄| 国产欧美一区二区视频| 欧美在线观看网站| 巨乳诱惑日韩免费av| 一区二区三区在线免费视频| 久久久综合免费视频| 亚洲国产高清在线观看视频| 亚洲精品一区二区三| 欧美午夜精品久久久久久人妖| 一区二区欧美在线| 欧美一区二区三区啪啪| 国产偷国产偷亚洲高清97cao| 亚洲综合社区| 免费日韩精品中文字幕视频在线| 亚洲第一福利在线观看| 免费欧美在线| 一区二区三区欧美在线| 欧美一级艳片视频免费观看| 国语自产在线不卡| 欧美国产日韩xxxxx| 一本色道久久综合| 久久精品三级| 亚洲精品一区二区三区蜜桃久| 欧美日韩国产综合视频在线观看| 一区二区三区欧美在线观看| 久久久欧美一区二区| 亚洲精品久久久久久一区二区| 欧美日韩免费在线视频| 亚洲欧美日韩一区在线| 欧美成人精品一区二区| 亚洲一区二区三区在线视频| 国产日韩欧美综合精品| 欧美sm重口味系列视频在线观看| 一本到12不卡视频在线dvd| 久久九九精品| 亚洲日韩成人| 国产麻豆日韩| 欧美精品久久久久久| 久久国产欧美精品| 亚洲美女免费精品视频在线观看| 久久久www成人免费无遮挡大片| 亚洲欧洲一区| 黑人巨大精品欧美一区二区小视频| 欧美极品aⅴ影院| 欧美一级夜夜爽| 亚洲精品国精品久久99热| 久久精品国内一区二区三区| 亚洲美女色禁图| 国产综合在线视频| 欧美日韩久久久久久| 久久一区二区精品| 午夜精彩视频在线观看不卡| 日韩视频在线播放| 欧美大片91| 久久久伊人欧美| 亚洲欧美综合| 亚洲精品免费观看| 在线观看一区| 国产一区二区三区在线观看视频| 欧美日韩精品是欧美日韩精品| 久久久精品国产免费观看同学| 一本久久精品一区二区| 欧美日韩精品久久| 欧美成黄导航| 久久国产精品99久久久久久老狼| 亚洲人精品午夜在线观看| 国产一区视频网站| 国产精品亚洲精品| 欧美午夜不卡视频| 欧美日韩国产在线观看| 欧美激情欧美狂野欧美精品| 久久免费高清视频| 欧美在线视频免费| 午夜精品亚洲一区二区三区嫩草| 亚洲美女福利视频网站| 亚洲人成7777| 亚洲国产精品国自产拍av秋霞| 玖玖玖国产精品| 麻豆国产精品一区二区三区| 久久在线观看视频| 免费视频最近日韩| 欧美大片免费观看| 欧美福利一区二区三区| 欧美激情在线观看| 最新高清无码专区| 91久久精品国产91久久性色tv| 欧美国产亚洲另类动漫| 欧美国产综合视频| 亚洲国产综合在线| 亚洲美女视频在线免费观看| avtt综合网| 亚洲午夜影视影院在线观看| 亚洲一区二区在线观看视频| 亚洲欧美久久久| 欧美在线看片a免费观看| 久久久99精品免费观看不卡| 美女网站久久| 欧美日韩亚洲一区二区三区|