亚洲午夜电影网_最近最新高清中文字幕_免费播放国产一级_国产成人久久

GPS Correction 0.01 Precision Tool / Algorithm Case

2019-09-17 11:40:39 root 405

Precision tool download: http://map.yanue.net/gps.html

 

This correction applies to Google map China, Microsoft map china, MapABC, etc., because these maps are the same as the offset.dat file, which is 0.01 precision correction data. If you need it, please contact the website, non-free version.

 

Algorithm demonstration:

 

 

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

<?php

/*

   Code function: Correct the Chinese map latitude and longitude offset with the 0.01 precision correction library file.

*/

header("Content-Type:text/html; charset=utf-8");

define('__dat_db__' 'offset.dat' );// DAT the file of data

define('datmax' , 9813675 );// Number of data - end record

 

// # offset.php?lat=39.914914&lon=116.460633

$lon=$_GET['lon'];

$lat=$_GET['lat'];

$tmplon=intval($lon * 100);

$tmplat=intval($lat * 100);

//Longitude to pixel X value

function lngToPixel($lng,$zoom) {

return ($lng+180)*(256<<$zoom)/360;

}

//Pixel X to longitude

function pixelToLng($pixelX,$zoom){

return $pixelX*360/(256<<$zoom)-180;

}

//Latitude to pixel Y

function latToPixel($lat$zoom) {

$siny = sin($lat * pi() / 180);

$y=log((1+$siny)/(1-$siny));

return (128<<$zoom)*(1-$y/(2*pi()));

}

//Pixel Y to latitudefunction pixelToLat($pixelY$zoom) {

$y = 2*pi()*(1-$pixelY /(128 << $zoom));

$z = pow(M_E, $y);

$siny = ($z -1)/($z +1);

return asin($siny) * 180/pi();

}

 

function xy_fk( $number ){

        $fp fopen(__dat_db__,"rb"); //■1■.將 r 改為 rb

        $myxy=$number;//#"112262582";

        $left = 0;//Start recording        $right = datmax;//end the record

 

        //Use dichotomy to find data

        while($left <= $right){

            $recordCount =(floor(($left+$right)/2))*8; //Take half

            //echo "Operation:left=".$left." right=".$right." midde=".$recordCount."
";

            @fseek $fp$recordCount , SEEK_SET ); //Set cursor

            $c fread($fp,8); //Read 8 bytes

            $lon = unpack('s',substr($c,0,2));

            $lat = unpack('s',substr($c,2,2));

            $x = unpack('s',substr($c,4,2));

            $y = unpack('s',substr($c,6,2));

            $jwd=$lon[1].$lat[1];

            //echo "Latitude and longitude found:".$jwd;

            if ($jwd==$myxy){

               fclose($fp);

               return $x[1]."|".$y[1];

               break;

            }else if($jwd<$myxy){

               //echo " > ".$myxy."
";

               $left=($recordCount/8) +1;

            }else if($jwd>$myxy){

               //echo " < ".$myxy."
";

               $right=($recordCount/8) -1;

            }

 

        }

        fclose($fp);

}

 

$offset =xy_fk($tmplon.$tmplat);

$off=explode('|',$offset);

$lngPixel=lngToPixel($lon,18)+$off[0];

$latPixel=latToPixel($lat,18)+$off[1];

 

echo pixelToLat($latPixel,18).",".pixelToLng($lngPixel,18);

 

?>

c#algorithm

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;   

 

namespace MapDigit.GIS

{

    public class GeoLatLng

    {   

 

        public GeoLatLng(double latitude, double longitude)

        {

            this.latitude = latitude;

            this.longitude = longitude;

        }

        public double latitude;

        public double longitude;

    }   

 

    public class GeoPoint

    {

        public GeoPoint(int x, int y)

        {

            this.x = x;

            this.y = y;

        }

        public int x;

        public int y;

    }   

 

    public class OffsetInChina

    {

        //Used to convert from GPS coordinates to post-offset coordinates        public static GeoLatLng fromEarthToMars(GeoLatLng earth)

        {

            GeoPoint ptOffset = getOffset(earth.latitude, earth.longitude);

            if (ptOffset.x != 0 || ptOffset.y != 0)

            {

                int pixelX, pixelY;

                TileSystem.LatLongToPixelXY(earth.latitude, earth.longitude, 18, out pixelX, out pixelY);

                GeoPoint pt = new GeoPoint(pixelX, pixelY);

                pt.x += ptOffset.x;

                pt.y += ptOffset.y;

                double latitude, longitude;

                TileSystem.PixelXYToLatLong(pt.x, pt.y, 18, out latitude, out longitude);

                return new GeoLatLng(latitude, longitude);   

 

            }

            else

            {

                return new GeoLatLng(earth.latitude, earth.longitude);

            }   

 

        }   

 

        //Used to convert the post-offset coordinates to true coordinates

        public static GeoLatLng fromMarToEarth(GeoLatLng mars)

        {

            GeoPoint ptOffset = getOffset(mars.latitude, mars.longitude);

            if (ptOffset.x != 0 || ptOffset.y != 0)

            {

                int pixelX, pixelY;

                TileSystem.LatLongToPixelXY(mars.latitude, mars.longitude, 18, out pixelX, out pixelY);

                GeoPoint pt = new GeoPoint(pixelX, pixelY);

                pt.x -= ptOffset.x;

                pt.y -= ptOffset.y;

                double latitude, longitude;

                TileSystem.PixelXYToLatLong(pt.x, pt.y, 18, out latitude, out longitude);

                return new GeoLatLng(latitude, longitude);   

 

            }

            else

            {

                return new GeoLatLng(mars.latitude, mars.longitude);

            }

        }   

 

        //This function is used to convert the latitude and longitude that needs to be queried into the nearest 0.01 division value, without interpolation.

        //You can also implement interpolation by yourself.

        private static GeoPoint getQueryLocation(double latitude, double longitude)

        {

            int lat = (int)(latitude * 100);

            int lng = (int)(longitude * 100);

            double lat1 = ((int)(latitude * 1000 + 0.499999)) / 10.0;

            double lng1 = ((int)(longitude * 1000 + 0.499999)) / 10.0;

            for (double x = longitude; x < longitude + 1; x += 0.5)

            {

                for (double y = latitude; x < latitude + 1; y += 0.5)

                {

                    if (x <= lng1 && lng1 < (x + 0.5) && lat1 >= y && lat1 < (y + 0.5))

                    {

                        return new GeoPoint((int)(x + 0.5), (int)(y + 0.5));

                    }

                }

            }

            return new GeoPoint(lng, lat);

        }   

 

        private static GeoPoint getOffset(double longitude, double latitude)

        {

            //This function is used to return the result of the query, which is to return the level 18, x, y offset from the corrected data.

            //Can be implemented by itself

            return null;

        }   

 

    }

}

亚洲午夜电影网_最近最新高清中文字幕_免费播放国产一级_国产成人久久
国产日韩欧美另类| 国产精品一区二区三区乱码| 久色成人在线| 欧美午夜激情在线| 亚洲特级毛片| 裸体一区二区| 国产欧美视频一区二区三区| 午夜国产精品视频| 欧美国产高清| 国产自产v一区二区三区c| 久久精品欧洲| 国产精品久久久久久久久久久久久久 | 狠狠久久亚洲欧美| 久久精品一区中文字幕| 国产精品久久| 久久高清免费观看| 国产精品一区久久久久| 久久久国产91| 国产中文一区| 欧美激情中文字幕一区二区| 在线观看av一区| 欧美久久久久久久久久| 在线综合亚洲| 欧美日韩国语| 欧美亚洲日本网站| 国产精品日日做人人爱| 久久精品视频导航| 国产日韩欧美亚洲| 欧美本精品男人aⅴ天堂| 在线精品国精品国产尤物884a| 欧美激情中文字幕在线| 亚洲嫩草精品久久| 国产精品久久久久免费a∨大胸| 性刺激综合网| 国产欧美一区二区三区另类精品 | 国产一区二区久久| 母乳一区在线观看| 亚洲色图在线视频| 欧美午夜精品久久久久久孕妇 | 国产日本欧美视频| 欧美成人一区二区三区在线观看| 一区二区亚洲精品国产| 欧美日韩一区二区在线观看| 欧美一区二区三区四区视频| 国产日韩欧美精品一区| 欧美成人免费在线| 亚洲欧美怡红院| 国产美女搞久久| 欧美成黄导航| 欧美一级网站| 国产又爽又黄的激情精品视频| 欧美福利网址| 欧美在线免费| 在线播放中文一区| 国产精品久久久久毛片大屁完整版| 久久香蕉国产线看观看网| 亚洲无毛电影| 国产欧美日韩视频在线观看| 欧美激情综合五月色丁香小说| 欧美与黑人午夜性猛交久久久| 国内外成人在线视频| 欧美涩涩网站| 免费亚洲视频| 欧美在线免费观看亚洲| 在线欧美日韩国产| 国产欧美高清| 欧美日韩一区二区欧美激情 | 韩日午夜在线资源一区二区| 欧美日韩精品一区二区三区四区| 久久婷婷蜜乳一本欲蜜臀| 亚洲免费网址| 韩国成人精品a∨在线观看| 欧美午夜免费影院| 欧美精品1区2区| 久久天天综合| 欧美一区二区三区免费大片| 在线观看日韩欧美| 国产欧美高清| 国产精品99免费看 | 国产精品一卡| 欧美另类一区二区三区| 久久人人97超碰国产公开结果| 亚洲一区二区视频在线观看| 国产一区高清视频| 国产精品国产自产拍高清av| 欧美激情一区二区| 美女精品视频一区| 久久精品一区二区三区中文字幕 | 欧美午夜精品久久久久免费视| 欧美激情一区二区三区成人| 久久中文在线| 久久久噜噜噜久久久| 先锋影音久久| 午夜精品久久久久久久久久久久| 在线成人中文字幕| 一区二区三区在线观看欧美| 国产视频一区三区| 国产精品夜夜夜| 国产精品视频午夜| 国产精品v日韩精品| 欧美三级在线| 欧美三级黄美女| 欧美视频日韩视频在线观看| 欧美日韩精品一区二区| 欧美欧美全黄| 欧美黄色免费网站| 欧美jizz19性欧美| 蜜桃av一区二区| 欧美成人午夜激情视频| 欧美暴力喷水在线| 欧美福利影院| 欧美精品免费观看二区| 欧美精品1区2区| 欧美日韩国产大片| 欧美日韩在线直播| 欧美午夜精品久久久久久人妖 | 欧美国产免费| 欧美日本久久| 欧美色图天堂网| 国产精品白丝黑袜喷水久久久| 国产精品久久77777| 国产精品一区二区女厕厕| 国产日韩欧美自拍| 黑人极品videos精品欧美裸| 精久久久久久| 亚洲婷婷在线| 性欧美1819性猛交| 久久精品一区中文字幕| 久久综合999| 欧美国产在线视频| 欧美日韩专区| 国产精品一区二区三区成人| 国产主播精品| 亚洲欧美激情一区| 欧美在线播放| 欧美成人国产| 欧美日一区二区在线观看| 国产精品综合网站| 精品动漫3d一区二区三区免费 | 午夜伦理片一区| 久久久久久久久岛国免费| 免费亚洲电影在线| 欧美视频在线免费看| 国产精品一区二区你懂得| 狠狠色狠狠色综合日日91app| 在线中文字幕一区| 久久国产精品久久久| 美女主播一区| 欧美色图五月天| 国产一区二区黄色| 亚洲欧美日韩一区二区在线| 久久久精品2019中文字幕神马| 欧美顶级艳妇交换群宴| 国产精品高潮呻吟久久av无限| 国产午夜精品久久久久久久| 亚洲午夜电影在线观看| 久久精品五月| 欧美日韩国产一区二区三区| 国产精品免费观看视频| 有码中文亚洲精品| 久久久999| 欧美日韩亚洲一区二区三区在线 | 一区在线观看视频| 欧美一区二区视频免费观看| 欧美成人综合一区| 国产精品网红福利| 亚洲一级网站| 免费欧美日韩国产三级电影| 国产精品毛片a∨一区二区三区|国 | 久热国产精品| 欧美性片在线观看| 狠狠88综合久久久久综合网| 久久不射中文字幕| 欧美日韩成人在线| 狠狠色狠狠色综合日日五| 久久精品成人一区二区三区| 欧美激情综合色| 国产一区二区视频在线观看| 欧美在线观看一区二区| 欧美日韩免费观看一区二区三区| 国产一区91| 久久av一区| 欧美三级电影大全| 亚洲天堂成人| 免费亚洲婷婷| 国产一区二区久久精品| 久久久精品动漫| 国产精品免费看| 香蕉成人啪国产精品视频综合网| 欧美大成色www永久网站婷| 国产午夜精品一区二区三区欧美| 性欧美在线看片a免费观看| 欧美美女喷水视频| 在线综合亚洲| 欧美另类高清视频在线| 在线播放日韩欧美| 欧美大秀在线观看| 国内免费精品永久在线视频| 狂野欧美一区| 国产专区精品视频|