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

我希望你是我獨(dú)家記憶

一段永遠(yuǎn)封存的記憶,隨風(fēng)而去
posts - 263, comments - 31, trackbacks - 0, articles - 3
   :: 首頁(yè) :: 新隨筆 ::  :: 聚合  :: 管理

google map api 編碼折線算法

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

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

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             //獲得絕對(duì)值
 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             //獲得二進(jìn)制
 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             //如果是負(fù)數(shù) -- 取反加1
 38             if ( source < 0 )
 39             {
 40                 //Console.WriteLine( "負(fù)數(shù) -- 取反加一" );
 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             //變換二進(jìn)制值
 75             binstring2.Append( "0" ) ;
 76             //Console.WriteLine( binstring2 ) ;
 77 
 78             //如果原來(lái)是負(fù)數(shù) -- 對(duì)編碼求反
 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( "負(fù)數(shù) -- 對(duì)編碼求反" ) ;
 88                 //Console.WriteLine( binstring2 ) ;
 89             }
 90 
 91             //從右側(cè)開(kāi)始五五分組
 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 }

只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   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>
            欧美图区在线视频| 久久久精品999| 狠狠狠色丁香婷婷综合久久五月| 国产一区欧美日韩| 午夜精品久久久久影视| 免费亚洲电影| 亚洲综合欧美日韩| 中文欧美在线视频| 亚洲精品美女在线| 一区二区日韩欧美| 久久激五月天综合精品| 亚洲无线观看| 欧美色欧美亚洲另类二区| 国产精品视频一区二区三区 | 久久精品1区| 亚洲夜间福利| 在线亚洲一区| 国产欧美欧美| 亚洲欧美国产高清va在线播| 亚洲免费综合| 亚洲国产精品久久久久秋霞不卡 | 亚洲伦理网站| 亚洲摸下面视频| 午夜视频久久久久久| 午夜精品剧场| 免费毛片一区二区三区久久久| 一区二区冒白浆视频| 久久久久久高潮国产精品视| 欧美国产精品一区| 欧美顶级少妇做爰| 亚洲尤物在线视频观看| 久久精品理论片| 在线视频亚洲一区| 亚洲一区在线观看视频 | 一本高清dvd不卡在线观看| 老司机67194精品线观看| 亚洲高清123| 在线观看一区二区精品视频| 欧美亚洲综合久久| 亚洲欧美在线aaa| 久久久视频精品| 欧美成人一区二区三区| 欧美日韩在线视频观看| 亚洲国产老妈| 久久久噜噜噜久久中文字免 | 中国亚洲黄色| 国产麻豆91精品| ●精品国产综合乱码久久久久| 久久爱www| 亚洲欧美日本视频在线观看| 国产午夜精品麻豆| av成人动漫| 久久久青草婷婷精品综合日韩| 欧美日韩黄视频| 欧美国产在线观看| 欧美激情女人20p| 亚洲综合视频一区| 国产一区二区久久精品| 亚洲欧美另类中文字幕| 亚洲午夜视频在线| 尤物视频一区二区| 香蕉久久夜色精品国产| 欧美一级午夜免费电影| 亚洲国产日韩在线| 欧美金8天国| 亚洲一区在线看| 欧美成年人在线观看| 亚洲欧美视频在线观看| 欧美黄色影院| 免费成人黄色| 亚洲综合电影| 国产精品99免费看| 亚洲图片在线| 国产欧美在线| 久久免费国产| 91久久精品www人人做人人爽| 久久免费视频在线| 国产亚洲一级| 欧美中文字幕不卡| 欧美成人精品在线观看| 91久久久久久国产精品| 在线电影一区| 午夜视频一区| 国产午夜精品久久久久久久| 国产精品99久久久久久久久| 久久国产直播| 久久久噜噜噜久久| 黄色精品免费| 久久久亚洲综合| 亚洲国产女人aaa毛片在线| 亚洲另类在线一区| 亚洲一区二区三区免费观看| 欧美电影免费观看网站| 免费成人激情视频| 国产一区二区三区电影在线观看| 99精品99久久久久久宅男| 久久久久久久久久看片| 亚洲国产精品精华液2区45| 久久久精品国产99久久精品芒果| 久久国产欧美精品| 国产日本欧美视频| 久久这里有精品视频| 国产日韩欧美中文| 免费视频最近日韩| 国产一区二区精品在线观看| 亚洲欧美中文日韩v在线观看| 最新亚洲一区| 久久人人九九| 一区二区成人精品| 尹人成人综合网| 欧美国产高清| 久久蜜桃资源一区二区老牛| 91久久国产综合久久蜜月精品| 亚洲综合激情| 在线精品视频一区二区| 亚洲视频1区2区| 日韩视频在线观看国产| 欧美亚洲综合在线| 日韩午夜黄色| 国产日韩欧美在线看| 欧美日韩美女在线| 99精品福利视频| 亚洲二区在线| 欧美午夜视频在线| 欧美成人官网二区| 午夜精品三级视频福利| 亚洲第一网站免费视频| 在线视频国产日韩| 暖暖成人免费视频| 久久人人爽爽爽人久久久| 欧美一区二区在线| 欧美有码在线视频| 中文日韩电影网站| 亚洲精品免费电影| 99亚洲一区二区| 欧美一区二区黄| 小嫩嫩精品导航| 免费久久精品视频| 久久久999精品| 久久视频在线免费观看| 亚洲精品影院在线观看| 国产亚洲综合性久久久影院| 国产精品久久久久久久久久三级| 国产综合色一区二区三区| 欧美日韩在线观看一区二区| 欧美精品二区三区四区免费看视频| 麻豆久久精品| 欧美在线视频全部完| 午夜视频在线观看一区二区| 小黄鸭视频精品导航| 久久久久九九九九| 久久裸体视频| 欧美日韩免费一区二区三区| 亚洲日本欧美在线| 欧美91大片| av不卡在线观看| 欧美一区二区久久久| 久久亚裔精品欧美| 欧美日韩情趣电影| 影音先锋国产精品| 黄页网站一区| 黄色成人av网| 羞羞答答国产精品www一本| 久久久久久久久久久一区| 亚洲人成小说网站色在线| 性久久久久久久久久久久| 蜜桃av一区| 欧美日韩理论| 国产区日韩欧美| 久久www成人_看片免费不卡| 性做久久久久久免费观看欧美| 国产精品成人一区二区艾草| 一区二区三区 在线观看视频| 久久久免费精品视频| 亚洲激情欧美| 亚洲欧美春色| 国产精品一区二区久久| 欧美日本视频在线| 国产欧美va欧美不卡在线| 亚洲激情小视频| 欧美成人免费网站| 久久国产精品久久w女人spa| 欧美日韩一区二区视频在线| 你懂的视频欧美| 99在线精品视频| 亚洲免费成人| 国产一区二区三区四区在线观看| 亚洲女女女同性video| 日韩一区二区电影网| 免费观看日韩av| 在线观看欧美日韩国产| 欧美激情国产精品| 欧美人成在线视频| 老巨人导航500精品| 久久青草久久| 艳妇臀荡乳欲伦亚洲一区| 欧美国产1区2区| 亚洲欧美日韩国产一区二区| 在线观看一区二区视频| 亚洲无限av看|