声明:转载自废客论坛。本程序代码只供学习,不可用于非法途径!后果自负!!!

关于地图经纬度获取与经纬度偏移解决办法_职场_04

终于搞定地图经纬度偏移修正数据库,在网上下的google 0.01精度校正数据,共处理 9845988 条数据,总计耗时 120.116666667分钟,近千万级数据量,累死!看来还得用二分查找法。
(注:需要校正库的我只能提供精度为0.1修正数据,至于为什么不能提供0.01的国家法律有明文规定小废这里就不再做说明了)

1.修正经纬度偏移的代码与算法:

 

  1. <?php 
  2. /* 
  3.    版本编号:101105082215 
  4.    文件名称:sql.php 
  5.    更新日期:2011-05-08 
  6.    代码修改:feikeq 
  7.    代码功能:利用0.01精度校正库文件修正经纬度偏移。 
  8. */ 
  9. header("Content-Type:text/html; charset=utf-8"); 
  10. define('__dat_db__' , 'offset.dat' );// DAT数据文件 
  11. define('datmax' , 9813675 );// 数据条数-结束记录 
  12.  
  13. //SELECT * FROM `offset_data` where lon=7350 and lat=3930 
  14.  
  15. // # xz.php?lat=39.914914&lon=116.460633  
  16. $lon=$_GET['lon']; 
  17. $lat=$_GET['lat']; 
  18. $tmplon=intval($lon * 100); 
  19. $tmplat=intval($lat * 100); 
  20. //经度到像素X值 
  21. function lngToPixel($lng,$zoom) { 
  22. return ($lng+180)*(256<<$zoom)/360; 
  23. //像素X到经度 
  24. function pixelToLng($pixelX,$zoom){ 
  25. return $pixelX*360/(256<<$zoom)-180; 
  26. //纬度到像素Y 
  27. function latToPixel($lat$zoom) { 
  28. $siny = sin($lat * pi() / 180); 
  29. $y=log((1+$siny)/(1-$siny)); 
  30. return (128<<$zoom)*(1-$y/(2*pi())); 
  31. //像素Y到纬度 
  32. function pixelToLat($pixelY$zoom) { 
  33. $y = 2*pi()*(1-$pixelY /(128 << $zoom)); 
  34. $z = pow(M_E, $y); 
  35. $siny = ($z -1)/($z +1); 
  36. return asin($siny) * 180/pi(); 
  37.  
  38.  
  39. function xy_fk( $number ){ 
  40.         $fp = fopen(__dat_db__,"rb"); //■1■.将 r 改为 rb 
  41.         $myxy=$number;#"112262582"
  42.         $left = 0;//开始记录 
  43.         $right = datmax;//结束记录 
  44.          
  45.         //开如用二分法来查找查数据 
  46.         while($left <= $right){ 
  47.             $recordCount =(floor(($left+$right)/2))*8; //取半 
  48.             //echo "运算:left=".$left." right=".$right." midde=".$recordCount."<br />"; 
  49.             @fseek ( $fp$recordCount , SEEK_SET ); //设置游标 
  50.             $c = fread($fp,8); //读8字节 
  51.             $lon = unpack('s',substr($c,0,2)); 
  52.             $lat = unpack('s',substr($c,2,2)); 
  53.             $x = unpack('s',substr($c,4,2)); 
  54.             $y = unpack('s',substr($c,6,2)); 
  55.             $jwd=$lon[1].$lat[1]; 
  56.             //echo "找到的经纬度:".$jwd; 
  57.             if ($jwd==$myxy){ 
  58.                fclose($fp); 
  59.                return $x[1]."|".$y[1]; 
  60.                break
  61.             }else if($jwd<$myxy){ 
  62.                //echo " > ".$myxy."<br />"; 
  63.                $left=($recordCount/8) +1; 
  64.             }else if($jwd>$myxy){ 
  65.                //echo " < ".$myxy."<br />"; 
  66.                $right=($recordCount/8) -1; 
  67.             } 
  68.                    
  69.         } 
  70.         fclose($fp); 
  71.  
  72. $offset =xy_fk($tmplon.$tmplat); 
  73. $off=explode('|',$offset); 
  74. $lngPixel=lngToPixel($lon,18)-$off[0]; 
  75. $latPixel=latToPixel($lat,18)-$off[1]; 
  76.  
  77. echo pixelToLat($latPixel,18).",".pixelToLng($lngPixel,18); 
  78.  
  79. ?> 


2.将地址文字采集字符经纬度并将字符经纬度解密成数字经纬度(这个示例用的是mapabc,当然你也可以用其它地图如google或mapbar等..)

 

  1. <?php 
  2. /* 
  3.    版本编号:101105091046 
  4.    文件名称:sql.php 
  5.    更新日期:2011-05-09 
  6.    代码修改:feikeq 
  7.    代码功能:将数据库内的地址文字采集字符经纬度并将字符经纬度解密成数字经纬度,然后利用0.01精度校正库文件修正经纬度偏移。 
  8. */ 
  9. header("Content-Type:text/html; charset=utf-8"); 
  10.     $mysql_server_name="localhost"; //数据库服务器名称 
  11.     $mysql_username="root"; // 连接数据库用户名 
  12.     $mysql_password=""; // 连接数据库密码 
  13.     $mysql_database="ycyw"; // 数据库的名字 
  14.    $mysql_table="ycyw_address_test"; // 数据表 
  15.    $start0 ;// 开始数据记录 
  16.    $over99999 ;// 结束数据记录 
  17.    //如果用原来的JS调用解密处理180条数据用时45秒左右现在只要15秒。 
  18.     
  19.    $phptime_1 = explode(' ', microtime()); 
  20. /* //        mapabc经纬度加密解密 - 开始            // */ 
  21. //MapAbc中使用编码坐标与10进度方式的坐标转换js方法,仅供参考 
  22. $__keys__ = array
  23.     array(0, 2, 1, 2, 8, 9, 4, 1, 7, 2, 5, 3, 9),  
  24.     array(0, 3, 2, 2, 9, 5, 8, 2, 6, 8, 4, 6, 3),  
  25.     array(1, 5, 2, 7, 1, 4, 7, 2, 4, 1, 4, 3, 0),  
  26.     array(0, 7, 8, 3, 4, 9, 0, 6, 7, 7, 4, 4, 2),  
  27.     array(0, 2, 1, 8, 4, 9, 3, 2, 3, 1, 5, 7, 8),  
  28.     array(0, 0, 9, 5, 4, 7, 3, 0, 8, 7, 5, 2, 8),  
  29.     array(0, 1, 5, 1, 1, 8, 2, 7, 1, 9, 1, 3, 5),  
  30.     array(0, 5, 2, 5, 6, 0, 3, 4, 6, 7, 1, 3, 5),  
  31.     array(1, 3, 2, 1, 8, 1, 8, 3, 7, 9, 2, 7, 0),  
  32.     array(1, 2, 7, 7, 4, 3, 1, 5, 5, 0, 6, 4, 4),  
  33.     array(1, 5, 2, 8, 9, 2, 5, 9, 6, 7, 3, 3, 5),  
  34.     array(1, 7, 9, 4, 5, 0, 9, 4, 9, 6, 1, 9, 9),  
  35.     array(0, 6, 8, 3, 3, 6, 3, 5, 2, 0, 0, 9, 1),  
  36.     array(1, 1, 1, 4, 7, 8, 6, 9, 6, 8, 8, 4, 6),  
  37.     array(0, 5, 2, 1, 2, 5, 7, 0, 0, 4, 7, 4, 1),  
  38.     array(0, 7, 6, 4, 2, 3, 9, 0, 7, 8, 5, 6, 7),  
  39.     array(0, 1, 7, 6, 0, 5, 4, 7, 6, 7, 7, 5, 7),  
  40.     array(0, 5, 2, 9, 8, 1, 7, 8, 3, 8, 5, 4, 5),  
  41.     array(0, 4, 3, 1, 2, 8, 3, 7, 0, 9, 4, 8, 8),  
  42.     array(1, 0, 6, 7, 9, 4, 3, 5, 2, 9, 8, 7, 7),  
  43.     array(1, 6, 4, 4, 6, 7, 1, 4, 4, 2, 6, 7, 5),  
  44.     array(0, 8, 1, 7, 7, 5, 2, 6, 4, 3, 9, 7, 5),  
  45.     array(1, 7, 0, 5, 6, 2, 5, 2, 7, 4, 6, 2, 8),  
  46.     array(0, 4, 9, 2, 3, 0, 5, 4, 7, 8, 7, 0, 5),  
  47.     array(1, 1, 0, 5, 1, 7, 2, 8, 7, 2, 6, 9, 3),  
  48.     array(1, 4, 2, 3, 6, 1, 5, 3, 2, 0, 3, 6, 2),  
  49.     array(1, 1, 6, 5, 1, 0, 6, 8, 9, 7, 1, 7, 9),  
  50.     array(0, 6, 5, 4, 0, 7, 1, 7, 6, 2, 5, 4, 2),  
  51.     array(1, 9, 8, 6, 6, 6, 8, 4, 5, 4, 0, 4, 0),  
  52.     array(1, 2, 7, 1, 5, 0, 6, 8, 0, 1, 3, 7, 9),  
  53.     array(1, 1, 6, 4, 9, 8, 6, 0, 6, 2, 1, 9, 8),  
  54.     array(0, 0, 1, 9, 5, 3, 3, 9, 6, 7, 4, 1, 1),  
  55.     array(0, 2, 8, 5, 7, 8, 6, 7, 3, 3, 1, 6, 4),  
  56.     array(1, 8, 2, 5, 8, 4, 7, 6, 8, 8, 5, 7, 6),  
  57.     array(0, 8, 3, 4, 9, 6, 1, 7, 8, 3, 0, 5, 5),  
  58.     array(1, 3, 2, 6, 7, 4, 2, 8, 7, 4, 9, 6, 8),  
  59.     array(1, 8, 8, 9, 3, 9, 1, 8, 5, 7, 2, 5, 0),  
  60.     array(0, 5, 8, 3, 1, 8, 8, 0, 3, 9, 3, 8, 1),  
  61.     array(1, 6, 0, 1, 1, 0, 3, 4, 3, 3, 3, 5, 9),  
  62.     array(1, 0, 5, 1, 7, 9, 6, 2, 4, 6, 0, 3, 5),  
  63.     array(1, 8, 2, 0, 9, 7, 1, 0, 5, 5, 8, 0, 6),  
  64.     array(1, 8, 9, 6, 7, 3, 9, 4, 1, 9, 6, 6, 2),  
  65.     array(0, 6, 0, 0, 8, 2, 6, 5, 9, 4, 1, 6, 2),  
  66.     array(1, 7, 9, 7, 9, 4, 4, 2, 1, 1, 5, 7, 4),  
  67.     array(1, 3, 0, 4, 3, 4, 6, 8, 6, 9, 1, 7, 0),  
  68.     array(0, 1, 2, 3, 9, 4, 1, 8, 7, 2, 2, 9, 8),  
  69.     array(1, 6, 5, 3, 2, 7, 6, 6, 9, 0, 0, 7, 7),  
  70.     array(1, 6, 8, 4, 9, 7, 8, 0, 3, 6, 5, 4, 8),  
  71.     array(0, 6, 6, 0, 9, 9, 4, 5, 5, 6, 8, 3, 7),  
  72.     array(1, 0, 1, 3, 4, 0, 0, 1, 4, 8, 5, 7, 0),  
  73.     array(1, 0, 2, 5, 8, 2, 2, 4, 8, 9, 7, 1, 6),  
  74.     array(1, 4, 2, 6, 6, 8, 4, 5, 6, 6, 4, 5, 9),  
  75.     array(1, 4, 4, 1, 7, 2, 0, 4, 6, 3, 3, 6, 7),  
  76.     array(0, 2, 2, 3, 8, 0, 0, 8, 6, 0, 2, 1, 7),  
  77.     array(0, 9, 4, 4, 8, 1, 2, 7, 3, 2, 6, 8, 0),  
  78.     array(0, 9, 8, 4, 2, 1, 4, 5, 2, 4, 9, 5, 1),  
  79.     array(0, 7, 2, 4, 7, 4, 3, 2, 4, 1, 5, 6, 9),  
  80.     array(1, 1, 8, 4, 8, 8, 8, 4, 3, 4, 1, 2, 5),  
  81.     array(0, 3, 2, 7, 5, 7, 0, 2, 7, 4, 5, 3, 5),  
  82.     array(0, 3, 0, 4, 6, 6, 6, 5, 7, 2, 1, 9, 5),  
  83.     array(1, 5, 6, 0, 1, 3, 2, 7, 3, 0, 9, 8, 6),  
  84.     array(0, 5, 5, 1, 7, 1, 0, 7, 9, 0, 3, 5, 7),  
  85.     array(0, 5, 4, 9, 7, 9, 7, 3, 8, 0, 1, 6, 3),  
  86.     array(1, 9, 2, 7, 3, 7, 9, 4, 3, 9, 8, 8, 2),  
  87.     array(0, 3, 1, 8, 9, 0, 9, 0, 4, 5, 5, 0, 9),  
  88.     array(1, 8, 6, 1, 7, 7, 2, 4, 7, 9, 2, 0, 8),  
  89.     array(0, 6, 1, 2, 7, 1, 4, 8, 4, 1, 1, 6, 0),  
  90.     array(0, 3, 9, 8, 5, 5, 3, 0, 8, 7, 9, 3, 5),  
  91.     array(0, 8, 4, 3, 7, 3, 1, 8, 2, 9, 1, 4, 7),  
  92.     array(0, 1, 5, 3, 4, 0, 5, 5, 5, 8, 0, 7, 2),  
  93.     array(0, 1, 7, 1, 8, 2, 1, 9, 8, 6, 1, 7, 0),  
  94.     array(0, 7, 1, 6, 9, 7, 2, 7, 2, 4, 4, 3, 6),  
  95.     array(0, 6, 2, 7, 2, 3, 4, 9, 3, 0, 1, 6, 3),  
  96.     array(0, 2, 9, 1, 9, 9, 9, 1, 9, 5, 4, 4, 4),  
  97.     array(0, 1, 8, 7, 0, 0, 5, 2, 1, 5, 7, 4, 6),  
  98.     array(1, 9, 0, 8, 7, 3, 3, 5, 5, 4, 9, 0, 1),  
  99.     array(1, 5, 8, 0, 1, 7, 0, 2, 3, 7, 3, 2, 9),  
  100.     array(1, 3, 2, 0, 5, 2, 7, 5, 0, 2, 6, 8, 1),  
  101.     array(0, 2, 7, 2, 3, 2, 2, 9, 6, 9, 4, 1, 6),  
  102.     array(1, 6, 4, 7, 9, 6, 5, 9, 5, 8, 2, 7, 1),  
  103.     array(1, 8, 1, 2, 6, 0, 2, 4, 0, 8, 0, 1, 6),  
  104.     array(1, 6, 2, 4, 1, 2, 4, 1, 7, 2, 7, 0, 6),  
  105.     array(0, 1, 8, 0, 5, 0, 4, 5, 5, 1, 0, 4, 7),  
  106.     array(0, 8, 7, 6, 4, 3, 5, 5, 7, 8, 4, 9, 0),  
  107.     array(0, 2, 7, 7, 0, 1, 6, 6, 1, 0, 9, 3, 5),  
  108.     array(0, 7, 6, 9, 8, 3, 8, 6, 2, 9, 3, 7, 0),  
  109.     array(1, 6, 6, 6, 0, 3, 0, 1, 0, 2, 5, 6, 1),  
  110.     array(0, 0, 4, 5, 1, 0, 9, 4, 4, 9, 4, 0, 9),  
  111.     array(0, 1, 6, 9, 4, 7, 5, 7, 8, 3, 5, 7, 0),  
  112.     array(1, 2, 7, 1, 6, 6, 1, 5, 2, 8, 6, 3, 8),  
  113.     array(1, 9, 1, 6, 7, 5, 1, 7, 4, 7, 6, 1, 8),  
  114.     array(1, 7, 6, 7, 0, 2, 9, 6, 9, 8, 6, 7, 8),  
  115.     array(0, 9, 8, 7, 3, 8, 1, 5, 2, 5, 2, 7, 5),  
  116.     array(0, 7, 3, 5, 7, 9, 7, 6, 6, 9, 1, 7, 5),  
  117.     array(1, 6, 7, 3, 4, 4, 7, 6, 2, 6, 6, 2, 3),  
  118.     array(0, 1, 4, 2, 2, 8, 5, 0, 9, 2, 7, 3, 1),  
  119.     array(0, 1, 4, 2, 1, 0, 0, 2, 1, 8, 9, 8, 3),  
  120.     array(1, 7, 0, 8, 7, 9, 9, 6, 4, 8, 6, 2, 2),  
  121.     array(1, 9, 3, 9, 9, 8, 7, 0, 8, 1, 1, 7, 3),  
  122.     array(1, 0, 4, 3, 5, 8, 0, 4, 6, 5, 4, 5, 8),  
  123.     array(0, 4, 8, 0, 5, 2, 3, 2, 3, 9, 4, 2, 3),  
  124.     array(0, 7, 9, 0, 9, 7, 2, 7, 7, 0, 4, 8, 5),  
  125.     array(1, 6, 5, 5, 3, 3, 2, 6, 1, 3, 4, 7, 1),  
  126.     array(0, 2, 9, 0, 0, 2, 9, 1, 8, 8, 2, 8, 4),  
  127.     array(1, 3, 2, 5, 0, 6, 2, 5, 3, 3, 6, 1, 1),  
  128.     array(1, 9, 2, 9, 3, 3, 8, 9, 9, 7, 2, 3, 7),  
  129.     array(1, 1, 8, 4, 0, 8, 2, 4, 8, 0, 0, 9, 2),  
  130.     array(1, 5, 2, 6, 0, 6, 1, 3, 0, 4, 7, 3, 8),  
  131.     array(1, 9, 3, 8, 1, 1, 7, 8, 6, 9, 0, 6, 8),  
  132.     array(1, 3, 2, 7, 7, 2, 2, 4, 2, 5, 8, 3, 0),  
  133.     array(1, 1, 1, 0, 7, 7, 3, 4, 7, 3, 6, 6, 8),  
  134.     array(0, 9, 4, 2, 8, 9, 4, 8, 4, 3, 2, 5, 3),  
  135.     array(0, 1, 0, 9, 2, 7, 2, 3, 9, 4, 5, 0, 8),  
  136.     array(1, 0, 4, 5, 8, 4, 0, 0, 5, 2, 2, 1, 2),  
  137.     array(0, 5, 0, 4, 5, 3, 2, 5, 4, 1, 3, 6, 9),  
  138.     array(1, 3, 0, 2, 7, 8, 1, 7, 7, 3, 5, 5, 9),  
  139.     array(1, 3, 7, 0, 0, 5, 8, 1, 7, 5, 6, 5, 2),  
  140.     array(1, 8, 1, 9, 9, 9, 4, 8, 6, 0, 7, 7, 3),  
  141.     array(0, 8, 3, 6, 2, 7, 4, 2, 1, 9, 1, 6, 8),  
  142.     array(0, 4, 4, 4, 2, 6, 0, 4, 0, 1, 5, 1, 7),  
  143.     array(1, 2, 7, 4, 7, 6, 6, 6, 3, 7, 7, 2, 9),  
  144.     array(0, 9, 8, 9, 3, 3, 3, 9, 0, 7, 4, 2, 3),  
  145.     array(0, 7, 6, 0, 9, 1, 7, 2, 4, 5, 8, 3, 3),  
  146.     array(1, 6, 1, 5, 5, 3, 1, 3, 2, 1, 0, 5, 6),  
  147.     array(0, 6, 2, 4, 1, 6, 6, 3, 4, 9, 2, 7, 0),  
  148.     array(1, 6, 3, 2, 3, 6, 1, 7, 7, 5, 6, 7, 1),  
  149.     array(1, 0, 4, 9, 2, 3, 3, 6, 2, 6, 9, 3, 2),  
  150.     array(0, 3, 7, 3, 9, 1, 3, 9, 5, 8, 5, 8, 9),  
  151.     array(1, 9, 0, 0, 3, 0, 9, 1, 2, 7, 8, 0, 3),  
  152.     array(1, 0, 1, 2, 7, 7, 0, 0, 1, 8, 4, 1, 1),  
  153.     array(0, 0, 5, 5, 9, 6, 9, 8, 1, 2, 1, 7, 2),  
  154.     array(0, 1, 8, 7, 9, 0, 3, 5, 6, 3, 2, 9, 4),  
  155.     array(1, 3, 1, 5, 7, 5, 0, 8, 5, 3, 2, 5, 0),  
  156.     array(1, 1, 7, 3, 5, 0, 7, 7, 9, 6, 8, 9, 0),  
  157.     array(0, 7, 7, 0, 9, 4, 2, 8, 8, 0, 2, 2, 0),  
  158.     array(1, 6, 5, 8, 3, 1, 0, 9, 0, 2, 7, 2, 9),  
  159.     array(1, 3, 5, 8, 4, 7, 6, 3, 1, 4, 3, 4, 7),  
  160.     array(0, 8, 8, 7, 8, 2, 7, 0, 3, 9, 6, 2, 9),  
  161.     array(1, 1, 6, 2, 6, 7, 5, 2, 5, 0, 8, 5, 5),  
  162.     array(0, 9, 6, 7, 3, 0, 2, 3, 9, 5, 3, 7, 4),  
  163.     array(1, 5, 2, 7, 3, 6, 0, 8, 3, 3, 9, 0, 3),  
  164.     array(0, 3, 6, 8, 9, 1, 7, 7, 3, 8, 7, 3, 8),  
  165.     array(0, 1, 2, 5, 4, 9, 8, 0, 3, 6, 4, 0, 4),  
  166.     array(1, 2, 4, 1, 6, 8, 1, 5, 8, 3, 6, 4, 3),  
  167.     array(1, 9, 3, 1, 0, 8, 4, 4, 0, 1, 6, 0, 8),  
  168.     array(0, 4, 5, 1, 0, 2, 1, 7, 1, 6, 1, 3, 3),  
  169.     array(0, 9, 5, 6, 8, 2, 2, 4, 0, 3, 9, 8, 1),  
  170.     array(1, 9, 3, 5, 4, 3, 1, 2, 2, 2, 0, 8, 7),  
  171.     array(0, 5, 6, 8, 1, 5, 7, 7, 8, 9, 4, 0, 6),  
  172.     array(1, 0, 4, 6, 4, 6, 7, 4, 6, 0, 3, 6, 2),  
  173.     array(1, 3, 3, 0, 2, 5, 3, 1, 9, 2, 3, 6, 8),  
  174.     array(0, 6, 9, 6, 3, 6, 9, 6, 2, 1, 5, 0, 7),  
  175.     array(1, 6, 5, 3, 0, 0, 0, 6, 2, 3, 8, 6, 0),  
  176.     array(1, 0, 7, 1, 2, 0, 3, 0, 3, 0, 8, 8, 0),  
  177.     array(0, 7, 1, 4, 3, 1, 8, 6, 7, 8, 1, 5, 4),  
  178.     array(0, 6, 3, 5, 5, 4, 8, 9, 4, 8, 3, 1, 7),  
  179.     array(0, 6, 4, 3, 1, 0, 7, 2, 9, 0, 5, 6, 7),  
  180.     array(0, 6, 3, 7, 7, 0, 6, 8, 6, 7, 4, 6, 0),  
  181.     array(0, 4, 2, 7, 2, 4, 1, 4, 6, 1, 8, 1, 7),  
  182.     array(1, 1, 7, 9, 0, 7, 0, 5, 1, 8, 6, 3, 5),  
  183.     array(1, 2, 0, 2, 7, 2, 7, 9, 1, 2, 7, 0, 3),  
  184.     array(0, 3, 3, 6, 2, 0, 9, 1, 1, 0, 3, 5, 8),  
  185.     array(1, 4, 0, 9, 9, 2, 5, 6, 5, 6, 8, 0, 5),  
  186.     array(0, 3, 5, 3, 3, 3, 4, 6, 7, 5, 7, 0, 5),  
  187.     array(0, 5, 8, 8, 5, 8, 5, 4, 7, 0, 5, 7, 3),  
  188.     array(0, 5, 0, 7, 6, 4, 2, 7, 8, 3, 6, 1, 4),  
  189.     array(0, 4, 7, 8, 6, 5, 3, 7, 7, 5, 7, 0, 7),  
  190.     array(1, 3, 6, 5, 3, 0, 8, 5, 4, 9, 7, 7, 1),  
  191.     array(1, 4, 8, 2, 8, 2, 8, 3, 4, 9, 4, 6, 7),  
  192.     array(1, 4, 1, 6, 9, 4, 5, 7, 7, 4, 6, 7, 7),  
  193.     array(0, 2, 8, 2, 3, 0, 7, 7, 1, 0, 1, 1, 0),  
  194.     array(1, 2, 2, 4, 5, 4, 7, 1, 0, 1, 8, 6, 7),  
  195.     array(0, 0, 7, 2, 4, 7, 2, 8, 2, 4, 4, 3, 9),  
  196.     array(1, 9, 1, 3, 2, 4, 1, 3, 3, 7, 5, 6, 1),  
  197.     array(1, 4, 7, 4, 6, 8, 6, 7, 4, 4, 1, 2, 8),  
  198.     array(0, 1, 6, 7, 3, 9, 0, 4, 7, 2, 9, 6, 7),  
  199.     array(0, 1, 3, 9, 1, 1, 1, 1, 6, 3, 0, 1, 1),  
  200.     array(1, 2, 7, 0, 2, 0, 7, 9, 7, 2, 1, 5, 2),  
  201.     array(0, 9, 1, 0, 4, 2, 8, 2, 2, 4, 2, 4, 0),  
  202.     array(1, 1, 7, 9, 7, 9, 3, 0, 5, 3, 4, 5, 2),  
  203.     array(0, 0, 7, 4, 3, 0, 8, 6, 7, 7, 7, 9, 6),  
  204.     array(0, 7, 0, 4, 0, 6, 7, 6, 3, 2, 0, 7, 1),  
  205.     array(0, 4, 8, 8, 0, 5, 3, 0, 7, 8, 4, 7, 9),  
  206.     array(0, 6, 3, 3, 3, 6, 6, 3, 7, 0, 4, 8, 3),  
  207.     array(0, 1, 2, 0, 6, 0, 3, 1, 0, 9, 9, 8, 0),  
  208.     array(0, 7, 0, 3, 8, 2, 5, 0, 7, 5, 0, 0, 4),  
  209.     array(1, 8, 8, 8, 2, 0, 6, 2, 5, 6, 2, 3, 2),  
  210.     array(1, 6, 2, 5, 8, 0, 1, 9, 7, 3, 7, 6, 0),  
  211.     array(0, 3, 6, 1, 9, 1, 6, 8, 2, 6, 5, 2, 5),  
  212.     array(0, 3, 9, 7, 8, 9, 4, 5, 4, 8, 5, 5, 1),  
  213.     array(1, 1, 5, 5, 2, 5, 3, 4, 5, 3, 5, 0, 9),  
  214.     array(1, 0, 9, 4, 9, 6, 1, 7, 0, 0, 6, 0, 1),  
  215.     array(0, 8, 4, 9, 9, 9, 3, 4, 1, 3, 5, 7, 7),  
  216.     array(0, 7, 8, 0, 0, 3, 5, 5, 9, 4, 1, 8, 1),  
  217.     array(1, 7, 3, 7, 6, 3, 2, 5, 6, 2, 7, 5, 0),  
  218.     array(0, 0, 2, 6, 0, 6, 6, 2, 7, 6, 1, 6, 2),  
  219.     array(1, 1, 6, 4, 7, 7, 9, 7, 0, 6, 2, 6, 6),  
  220.     array(0, 2, 1, 1, 4, 7, 6, 8, 8, 8, 9, 4, 3),  
  221.     array(0, 0, 8, 7, 5, 1, 9, 3, 1, 9, 8, 6, 0),  
  222.     array(0, 3, 4, 4, 0, 7, 1, 8, 7, 2, 7, 9, 9),  
  223.     array(1, 0, 4, 5, 3, 6, 0, 6, 6, 6, 4, 1, 5),  
  224.     array(0, 9, 7, 9, 9, 5, 9, 2, 3, 0, 4, 6, 2),  
  225.     array(1, 6, 5, 2, 7, 2, 1, 3, 5, 2, 5, 2, 1),  
  226.     array(1, 9, 9, 4, 8, 6, 3, 7, 8, 3, 3, 0, 6),  
  227.     array(0, 8, 2, 6, 6, 7, 8, 2, 1, 3, 2, 9, 2),  
  228.     array(0, 4, 8, 1, 9, 2, 4, 8, 4, 5, 4, 6, 4),  
  229.     array(1, 1, 7, 0, 7, 3, 5, 1, 4, 9, 5, 3, 1),  
  230.     array(1, 7, 8, 8, 3, 5, 3, 1, 5, 7, 6, 1, 9),  
  231.     array(1, 4, 5, 6, 5, 3, 2, 5, 3, 0, 3, 5, 5),  
  232.     array(0, 0, 2, 1, 3, 8, 9, 1, 0, 9, 7, 6, 7),  
  233.     array(0, 0, 7, 6, 1, 9, 1, 9, 5, 8, 9, 4, 0),  
  234.     array(1, 5, 4, 4, 6, 8, 7, 3, 9, 9, 0, 7, 4),  
  235.     array(1, 3, 0, 4, 8, 1, 2, 3, 9, 7, 1, 9, 5),  
  236.     array(1, 2, 6, 1, 4, 6, 9, 4, 7, 1, 1, 2, 6),  
  237.     array(0, 1, 6, 7, 5, 8, 3, 2, 7, 0, 4, 1, 1),  
  238.     array(1, 6, 2, 7, 8, 7, 6, 8, 7, 2, 0, 3, 3),  
  239.     array(0, 2, 1, 9, 2, 6, 7, 5, 9, 5, 2, 2, 2),  
  240.     array(0, 5, 2, 0, 4, 7, 7, 3, 8, 1, 5, 0, 9),  
  241.     array(1, 6, 5, 8, 6, 4, 0, 9, 6, 9, 0, 1, 8),  
  242.     array(1, 2, 0, 8, 7, 9, 2, 4, 4, 0, 9, 8, 9),  
  243.     array(1, 6, 5, 2, 0, 6, 1, 0, 4, 4, 1, 5, 8),  
  244.     array(1, 5, 4, 2, 5, 6, 2, 5, 6, 2, 2, 9, 5),  
  245.     array(1, 6, 9, 7, 2, 5, 1, 0, 6, 9, 1, 8, 1),  
  246.     array(0, 0, 3, 9, 9, 0, 6, 7, 9, 5, 7, 4, 6),  
  247.     array(1, 5, 8, 9, 9, 0, 6, 7, 9, 7, 9, 6, 1),  
  248.     array(1, 3, 6, 4, 6, 3, 6, 8, 4, 5, 2, 8, 3),  
  249.     array(0, 7, 4, 8, 4, 9, 7, 8, 0, 0, 1, 2, 2),  
  250.     array(0, 4, 2, 9, 1, 3, 8, 8, 3, 0, 0, 9, 8),  
  251.     array(1, 9, 0, 9, 2, 1, 2, 9, 3, 6, 5, 3, 2),  
  252.     array(1, 1, 0, 2, 0, 5, 9, 9, 5, 4, 7, 8, 9),  
  253.     array(1, 6, 0, 5, 9, 9, 1, 9, 0, 5, 4, 7, 1),  
  254.     array(1, 0, 4, 0, 0, 3, 2, 4, 1, 6, 4, 6, 5),  
  255.     array(1, 7, 3, 7, 3, 3, 7, 6, 1, 7, 7, 8, 6),  
  256.     array(0, 9, 1, 7, 3, 5, 1, 8, 9, 3, 8, 6, 2),  
  257.     array(1, 4, 9, 9, 3, 7, 5, 4, 4, 4, 4, 4, 0),  
  258.     array(0, 3, 7, 7, 4, 3, 6, 1, 1, 3, 5, 1, 6),  
  259.     array(0, 8, 5, 4, 3, 9, 3, 3, 1, 3, 4, 8, 1),  
  260.     array(1, 6, 1, 9, 4, 6, 4, 6, 4, 5, 2, 1, 5),  
  261.     array(1, 1, 1, 6, 8, 3, 9, 1, 1, 3, 0, 9, 9),  
  262.     array(0, 5, 1, 6, 8, 4, 8, 8, 2, 4, 4, 9, 2),  
  263.     array(0, 2, 3, 0, 1, 4, 2, 7, 1, 9, 9, 0, 6),  
  264.     array(0, 8, 4, 2, 5, 1, 4, 9, 5, 2, 0, 4, 3),  
  265.     array(0, 9, 1, 2, 5, 0, 6, 6, 5, 0, 3, 1, 8),  
  266.     array(1, 7, 8, 7, 1, 7, 4, 6, 3, 3, 3, 3, 9),  
  267.     array(0, 3, 7, 2, 9, 4, 1, 5, 4, 7, 2, 1, 0),  
  268.     array(1, 2, 8, 1, 1, 6, 4, 7, 8, 2, 0, 5, 2),  
  269.     array(1, 8, 3, 5, 4, 8, 0, 9, 7, 8, 0, 1, 8),  
  270.     array(1, 7, 9, 9, 0, 4, 5, 7, 2, 9, 0, 1, 9),  
  271.     array(0, 6, 6, 5, 6, 7, 0, 4, 0, 7, 8, 5, 1),  
  272.     array(0, 6, 0, 6, 3, 1, 1, 5, 0, 9, 2, 2, 3),  
  273.     array(1, 6, 3, 5, 6, 7, 1, 6, 6, 9, 7, 4, 9),  
  274.     array(0, 9, 5, 9, 8, 2, 4, 3, 3, 2, 3, 5, 6),  
  275.     array(0, 1, 6, 3, 8, 9, 9, 2, 8, 2, 5, 8, 6),  
  276.     array(1, 4, 7, 6, 6, 5, 7, 3, 3, 3, 4, 1, 1),  
  277.     array(1, 8, 2, 9, 0, 3, 8, 6, 8, 3, 3, 7, 3),  
  278.     array(0, 2, 8, 4, 8, 5, 4, 8, 9, 5, 0, 5, 7) 
  279. ); 
  280. //字符串中第一个字符的ASCII码 
  281. function uniord($str,$from_encoding=false) { 
  282.         $from_encoding = $from_encoding ? $from_encoding : 'UTF-8'; 
  283.         if(strlen($str)==1) { 
  284.             return ord($str); 
  285.         } 
  286.         $str = mb_convert_encoding($str, 'UCS-4BE', $from_encoding); 
  287.         $tmp = unpack('N',$str); 
  288.         print_r($str); 
  289.         return $tmp[1]; 
  290. //ASCII码转换为字符串 
  291. function fromCharCode($codes) { 
  292.    if (is_scalar($codes)) $codesfunc_get_args(); 
  293.    $str''
  294.    foreach ($codes as $code) $str.chr($code); 
  295.    return $str; 
  296. function getDecodeCoordinate($enLonLat) {    
  297.     global $__keys__; 
  298.     //取编码坐标的后4位字符 
  299.     $last4cha = substr($enLonLat, mb_strlen($enLonLat,'utf-8') - 4, mb_strlen($enLonLat,'utf-8')); 
  300.     //将后4位字符转成对应的ASCII值 
  301.     $last4asc = array(); 
  302.     for ($i = 0; $i < mb_strlen($last4cha,'utf-8'); $i++) { 
  303.         //$last4asc.push($last4cha.charCodeAt($i)); 
  304.         //php的ord替代 
  305.         array_push($last4asc,uniord(mb_substr($last4cha, $i, 1, 'utf-8'))); 
  306.     } 
  307.     //取4个数值的后两位,组成一个新的8位数字,代表key所在的索引值 
  308.     $keyposition = 0
  309.     $keyposition |= $last4asc[0] & 3; 
  310.     $keyposition |= ($last4asc[1] & 3) << 2
  311.     $keyposition |= ($last4asc[2] & 3) << 4
  312.     $keyposition |= ($last4asc[3] & 3) << 6
  313.     //根据索引值取对应的key,key是一个长度为13的数组 
  314.     $keys = $__keys__[$keyposition]; 
  315.     //取编码坐标的去掉最后4位的所有字符 
  316.     $lonlat = substr($enLonLat,0, mb_strlen($enLonLat,'utf-8') - 4); 
  317.     //将所有字符转成对应的ASCII值 
  318.     $lonlatasc = array(); 
  319.     for ($i = 0; $i < mb_strlen($lonlat,'utf-8'); $i++) { 
  320.         //$lonlatasc.push($lonlat.charCodeAt($i)); 
  321.         array_push($lonlatasc,uniord( mb_substr($lonlat, $i, 1, 'utf-8') )); 
  322.     } 
  323.     //根据key的第一位。。。 
  324.     $key1 = $keys[0]; 
  325.     $fixed = 0
  326.     switch ($key1) { 
  327.         case 0: 
  328.             $fixed = 23
  329.             break; 
  330.         case 1: 
  331.             $fixed = 53
  332.             break; 
  333.     } 
  334.     //将所有的asc值进行处理 
  335.     for ($i = 0; $i < count($lonlatasc); $i++) { 
  336.         $lonlatasc[$i] -= $fixed; 
  337.         $lonlatasc[$i] -= $keys[$i + 1]; 
  338.     } 
  339.     //将处理后的asc值转成对应的asc码 
  340.     $lonlatcha = array(); 
  341.     for ($j = 0; $j < count($lonlatasc); $j++) { 
  342.         //$lonlatcha.push(String.fromCharCode($lonlatasc[$j])); 
  343.         array_push($lonlatcha,fromCharCode($lonlatasc[$j])); 
  344.     } 
  345.     //$deLonLat = $lonlatcha.join(""); 
  346.     $deLonLat = ''
  347.     foreach($lonlatcha AS $k=>$v){ 
  348.         $deLonLat .= $v; 
  349.     } 
  350.      
  351.     return $deLonLat; 
  352. /* //        mapabc经纬度加密解密 - 结束            // */ 
  353.  
  354.  
  355.     // 连接到数据库 
  356.     $conn=mysql_connect($mysql_server_name, $mysql_username,$mysql_password); 
  357.    mysql_select_db($mysql_database); 
  358.    mysql_query("SET NAMES UTF8", $conn); 
  359.      
  360.     // 从表中提取信息的sql语句 
  361.     $strsql="SELECT * FROM `".$mysql_table."` LIMIT ".$start." , ".$over ; 
  362.  
  363.     // 执行sql查询 
  364.     $result=mysql_query( $strsql, $conn); 
  365.     $count=0
  366.     // 获取查询结果 
  367.    while($row=mysql_fetch_assoc($result)){ 
  368.             $count +=1; 
  369.             $address= $row['address']; 
  370.          //$address='学院路肯德基'
  371.             $address_url =urlencode($address); 
  372.              
  373.             $tipsgo = "http://search1.mapabc.com/sisserver?highLight=false&config=GOC&address=".$address_url 
  374.            . 
  375.             "&resType=json&enc=utf-8&a_k=947518d877fb275850a375d795be6a44c27ab526ef632290ee4f46327a7d0faac6c032378101477f&ctx=1119073&a_nocache=315700931114"; 
  376.             //调用接口提交 
  377.               $a11 = file_get_contents($tipsgo); 
  378.       
  379.      /*接口返回的数据 
  380.      MAjaxRequest.ReturnData('1119073',{"message":"ok","count":"1","list":[{"prox":"0.581818","range":"0.000861","eprovince":"","score":"35424.929688","city":"","edistrict":"","ecity":"","num":"70","level":"gl_poi","inum":"67","address":"","name":"中国北京市海淀区知春路63号卫星大厦","province":"","ename":"","district":"","roadpts":"","eaddress":"","y":"KWKPSQVOHDMD","x":"IOSEONORVDDEH"}]})  
  381.       
  382.      or 
  383.       
  384.      MAjaxRequest.ReturnData('1119073',{"message":"ok","count":"2","list": [{"prox":"0.500000","range":"0.007838","eprovince":"","score":"23968.869141","city":"","edistrict":"","ecity":"","num":"3825","level":"gl_street","inum":"2","address":"","name":" 中国北京市海淀区学院路","province":"","ename":"","district":"","roadpts":"","eaddress":"","y":"SUNXRLMONOJGO","x":"QMVMLPKRNRKNGO"}, {"prox":"0.500000","range":"0.002909","eprovince":"","score":"6724.464844","city":"","edistrict":"","ecity":"","num":"1123","level":"gl_street","inum":"0","address":"","name":" 中国浙江省杭州市西湖区学院路","province":"","ename":"","district":"","roadpts":"","eaddress":"","y":"SLNQPROLOGJOK","x":"QNPMJMSSMMKJOO"}]}) 学院路肯德基: 
  385.       
  386.      */ 
  387.          // preg_match("/name\":\"(.*)\".*\"y\":\"(.*)\",\"x\":\"(.*)\"/isU",$a11,$Areg) ; 
  388.       preg_match("/\"count\":\"(.*)\".*\"name\":\"(.*)\".*\"y\":\"(.*)\",\"x\":\"(.*)\"/isU",$a11,$Areg); //正则表达式取数据 
  389.       //echo $a11; 
  390.                
  391.          //print_r($Areg); 
  392.       //die(); 
  393.           
  394.          /* 
  395.      [0] => "count":"2","list":[{"prox":"0.500000","range":"0.007838","eprovince":"","score":"23968.869141","city":"","edistrict":"","ecity":"","num":"3825","level":"gl_street","inum":"2","address":"","name":"中国北京市海淀区学院路","province":"","ename":"","district":"","roadpts":"","eaddress":"","y":"KVHXYQLTNLKOG","x":"INPMSUJWNTLKKK" 
  396.      [1] => 2 
  397.      [2] => 中国北京市海淀区学院路 
  398.      [3] => KVHXYQLTNLKOG 
  399.      [4] => INPMSUJWNTLKKK 
  400.           */ 
  401.                
  402.            // echo $address .":<br /> <br />"; 
  403.              
  404.                 
  405.                  
  406.     if ($Areg[1]==0){ //如果没有搜到记录 
  407.             echo "第ID为".$row['id'].'没有找到数据 <br/> '; 
  408.     }else{ 
  409.         $decodelon = getDecodeCoordinate($Areg[4]); //将经字母纬度解密 
  410.             $decodelat = getDecodeCoordinate($Areg[3]); //将经字母纬度解密 
  411.              
  412.             //计算经纬度偏移量! 
  413.             $jwdgo = $_SERVER['HTTP_REFERER']."xz.php?lon=".$decodelon."&lat=".$decodelat ; 
  414.             //调用接口提交 
  415.             $a12 = file_get_contents($jwdgo)."<br />"; 
  416.              //分解字符 
  417.             $usus = explode(',',$a12); 
  418.             $pyl_x =$usus[1]; 
  419.             $pyl_y =$usus[0]; 
  420.              
  421.            //echo "地图:". $decodelat.",".$decodelon." <br /> 卫星:".$pyl_y.",".$pyl_x." <br /> " ; 
  422.           // 更新表中的sql语句 
  423.      $strsqlz="UPDATE `".$mysql_table."` SET `x`='".$pyl_x."', `y`='".$pyl_y."' , `x_off` = '".$decodelon."',`y_off` = '".$decodelat."' WHERE `id` =".$row['id']; 
  424.      // 执行sql查询 
  425.      $resultz=mysql_query( $strsqlz, $conn); 
  426.       
  427.      //echo $strsqlz;die(); 
  428.       
  429.     } 
  430.      
  431.       
  432.            
  433.    
  434. $phptime_2 = explode(' ', microtime()); 
  435. echo "<br />共处理".$count."条数据,总计耗时 ".($phptime_2[1]-$phptime_1[1])."秒。"; 
  436. ?> 


修正经纬度后的效果:

关于地图经纬度获取与经纬度偏移解决办法_休闲_05

 

附:高德MapABC地图API代码测试

关于地图经纬度获取与经纬度偏移解决办法_休闲_06

  1. <html> 
  2. <head> 
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
  4. <!-- 在页面头部添加MapABC API引用地址,并将您的API密钥传递到引用地址中。一般情况我们会把它添加到 head 区域中。  --> 
  5. <script type="text/javascript" src="http://app.mapabc.com/apis?&t=ajaxmap&v=2.1.2&key=62fe3d14ea426b905bd8e3e397d976261006bbe85a29c052bfbac85603cbdf79ff739f6f0881a656"></script> 
  6.   
  7.      
  8. <title>高德MapABC地图API代码测试 - 废客提供</title> 
  9. </head> 
  10. <body > 
  11.    <!-- 在页面中添加一个用于装载地图的容器 --> 
  12.    <div id="mapabc" style="width:480px; height:400px;" ></div> 
  13.    <input type="text" id="lngXY" name="lngXY" size="50" value="这里显示经纬和窗体大小" /> 
  14.    <input type="button" value="获得中心经纬度" onClick="getCenterXY()" />  
  15.    <input type="button" value="获得地图窗大小" onClick="getSize()" /> 
  16.    <div>地址<input type="text" size="50" value="北京市海淀区知春路63号卫星大厦1层大堂(翠宫饭店正对面)" id="address" name="address"> 
  17.    <input type="button" value="查询" onClick="geocodeSearch()"> 
  18.    <br />结果<input type="text" size="50" name="address2" id="address2"/><br /> 
  19.    <span id="result">状态</span> 
  20.    </div> 
  21. <!-- 使用Javascript语言,创建地图对象 --> 
  22. <script type="text/javascript">  
  23.  //创建初始化设置 - 构建地图辅助类 
  24.   var mapoption = new MMapOptions(); 
  25.    mapoption.zoom=16;//设置地图zoom级别 
  26.    mapoption.minZoomLevel = 4;//设置地图上可显示的最小缩放级别,默认为3   
  27.    mapoption.maxZoomLevel = 17;//设置地图上可显示的最大缩放级别,默认为17,最大缩放级别小于等于20   
  28.    mapoption.toolbar=MINI; //设置工具条 SMALL:小型  MINI:迷你  DEFAULT:默认 当有minZoomLevel和maxZoomLevel 变成小型 
  29.    mapoption.toolbarPos=new MPoint(0,0); //设置工具条位置 
  30.    //mapoption.toolbarUrl="http://code.mapabc.com/p_w_picpaths/lan_1.png";//工具条URL,可以自定义工具条   
  31.     
  32.    mapoption.overviewMap =HIDE; //设置鹰眼(小地图)  可用 SHOW、HIDE、DEFAULT、ture、false 赋值 
  33.    mapoption.scale=0;//是否显示比例尺   
  34.    mapoption.zoomBox = 1;//鼠标滚轮缩放和双击放大时是否有红框动画效果。  
  35.    mapoption.center=new MLngLat(116.46036,39.91507)// ←googlemap |Google地球(116.454171538,39.9135834736)|百度(116.466938,39.920597);   //设置地图中心点   
  36.    mapoption.returnCoordType = COORD_TYPE_OFFSET;//返回数字坐标 
  37.    
  38.  var mapObj=new MMap("mapabc",mapoption);//创建地图对象 加载地图初始化 
  39. </script> 
  40.      
  41.      
  42.      
  43. <!-- 使用Javascript语言,当前地图中心点坐标 --> 
  44. <script type="text/javascript">  
  45. function getCenterXY(){   
  46.     var centXY = mapObj.getCenter();//获得地图中心点   
  47.     document.getElementById("lngXY").value = centXY.lngX +',' + centXY.latY;//经度 +维度   
  48.   
  49.  //添加mark地标 
  50.  var markerOption=new MMarkerOptions();   
  51.     markerOption.p_w_picpathUrl="http://code.mapabc.com/p_w_picpaths/lan_1.png";   
  52.     markerOption.picAgent=false;   
  53.     var Marker = new MMarker(new MLngLat( centXY.lngX ,centXY.latY),markerOption);   
  54.     Marker.id="mark";   
  55.     mapObj.addOverlay(Marker,true) ;   
  56. }   
  57. </script>   
  58. <!-- 使用Javascript语言,当前地图视窗的像素大小 --> 
  59. <script type="text/javascript">  
  60. function getSize(){   
  61.     var size = mapObj.getSize();//获取地图视野范围像素坐标的范围   
  62.     document.getElementById("lngXY").value = size.width +','+ size.height; //宽度 + 高度 
  63. }   
  64. </script> 
  65.   
  66. <!-- 使用Javascript语言,地理编码(地址匹配) --> 
  67. <script type="text/javascript">  
  68. function geocodeSearch(){ 
  69.  var addressName = document.getElementById('address').value; 
  70.  if(addressName== ""){ 
  71.   alert("请输入地址!"); 
  72.   document.getElementById('address').focus(); 
  73.   return; 
  74.  }else{ 
  75.   var mls = new MGeoCodeSearch(); //初始化MGeoCodeSearch类的一个新实例 
  76.   var opt = new MGeoCodeSearchOptions(); //地址解析输入参数选项 
  77.   mls.setCallbackFunction(addressToGeoSearch_CallBack); //回调函数 
  78.   mls.addressToGeocode(addressName,opt); //地址解析,由地址得到经纬度坐标相关信息。 
  79.  } 
  80.  
  81. function addressToGeoSearch_CallBack(data){ 
  82.  var resultStr=""
  83.  if(data.error_message != null){ 
  84.   resultStr="查询异常!"+data.error_message; 
  85.  }else{ 
  86.  switch(data.message){ 
  87.  case 'ok': 
  88.   var Mmarker = new Array(); 
  89.   if(data.count==0){ 
  90.    resultStr = "未查找到任何结果!<br />建议:<br />1.请确保所有字词拼写正确。<br />2.尝试不同的关键字。<br />3.尝试更宽泛的关键字。"
  91.   }else{ 
  92.    for (var i = 0; i < data.list.length; i++) { 
  93.     resultStr += "<span class=\"spoi\"><a href=\"javascript:var s=mapObj.setCenter(new MLngLat('"+ data.list[i].x +"','"+ data.list[i].y +"'));var t = mapObj.openOverlayTip('"+(i)+"');\">"+data.list[i].name+"</a></span>"; 
  94.     var markerOption = new MMarkerOptions(); 
  95.     markerOption.p_w_picpathUrl ="http://code.mapabc.com/p_w_picpaths/apin/lan_"+(i+1)+".png"; 
  96.     document.getElementById("address2").value =data.list[i].name; 
  97.   
  98.     var ll = new MLngLat(data.list[i].x,data.list[i].y); 
  99.      
  100.     var tipOption = new MTipOptions(); 
  101.     tipOption.title=data.list[i].name; //标题  
  102.     tipOption.content="座标:<input type=text size=30 value='"+ ll.latY +","+ ll.lngX +"' />"; //内容 
  103.     document.getElementById("lngXY").value ="字符串坐标:"+data.list[i].x+","+data.list[i].y ; 
  104.  
  105.     tipOption.borderStyle.color0x0000ff; //信息框加框颜色 
  106.     tipOption.titleFillStyle.color=0x0000ff; //标题颜色 
  107.     tipOption.titleFontStyle.size=12; //标题字体大小 
  108.     tipOption.titleFontStyle.color0xffffff;//标题字体颜色 
  109.     tipOption.titleFontStyle.bold=true; ////标题字体粗体 
  110.     tipOption.fillStyle.color0x0000ff; //内容区北景色 
  111.     tipOption.contentFontStyle.color0x00ffff ; //内容区文本 颜色 
  112.     tipOption.alpha=0.6; //信息框的透明度1为不透明例0.8 
  113.     markerOption.tipOption = tipOption; 
  114.     markerOption.canShowTip=true; //是否显示tip 
  115.      
  116.     Mmarker[i] = new MMarker(ll,markerOption); 
  117.     Mmarker[i].id=(i); 
  118.    } 
  119.    mapObj.addOverlays(Mmarker,true); 
  120.    mapObj.openOverlayTip("0"); 
  121.   } 
  122.  break; 
  123.  case 'error': 
  124.   content='<div class=\"default\"><div class=\"default_title\">网络忙!请重新尝试!</div><div class=\"d_link\"><div class=\"d_right\"></div><div class=\"suggest\"><strong>建议:</strong><br />如果您刷新页后仍无法显示结果,请过几分钟后再次尝试或者与我们的服务人员联系。<br />Email:service@mapabc.com <br />电话:400 810 0080</div></div></span>错误信息:"+data.message+"</div>'
  125.  break; 
  126.  default: 
  127.   content='<div class=\"default\"><div class=\"default_title\">对不起!网络繁忙!请稍后重新尝试!</div><div class=\"d_link\"><div class=\"d_right\"></div><div class=\"suggest\"><strong>建议:</strong><br />如果您刷新页后仍无法显示结果,请过几分钟后再次尝试或者与我们的服务人员联系。<br />Email:service@mapabc.com <br />电话:400 810 0080</div></div></span>错误信息:"+data.message+"</div>'
  128.  } 
  129.  document.getElementById("result").innerHTML = resultStr
  130.  } 
  131. </script> 
  132. </body> 
  133. </html>