有正确的算法最好了http://ditu.google.cn/maps/vp?spn=0.0,0.0&z=18&vp=40.0430603027344,116.2938404083
网上搜索看到这个服务,但是返回的是个JS文件,不知道怎么用,是不是已经不管用了?不想用个人架设的服务

解决方案 »

  1.   


    纠偏需要有自己的纠偏数据库 能比对 值我们有自己的纠偏数据库  这张表一共有800W的数据去年我做GPS开发的时候也多次提到这个问题 Google的纠偏是做的比较好的 百度  什么 中国的一些是 很傻瓜的纠偏  使用的坐标算法这是去的纠偏方法:  方法其实没什么  主要是纠偏数据 你要么自己去搞  要么调用别人的接口(需要付费)
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Configuration;namespace WSGPSGateway.BLL
    {
        public class LocationLogic
        {
            public LocationLogic() { }        private static volatile LocationLogic _LocationLogic = new LocationLogic();        /// <summary>
            /// 得到实例
            /// </summary>
            /// <returns></returns>
            public static LocationLogic GetInstance()
            {
                if (_LocationLogic == null)
                {
                    lock (typeof(LocationLogic))
                    {
                        if (_LocationLogic == null)
                        {
                            _LocationLogic = new LocationLogic();
                        }
                    }
                }
                return _LocationLogic;
            }       /// <summary>
           /// 得到经度和纬度
           /// </summary>
           /// <param name="lat"></param>
           /// <param name="lng"></param>
           /// <returns></returns>
            public decimal[] GetLatLng(decimal lat, decimal lng)
            {
                int PX, PY;
                decimal? PX1, PY1;
                decimal? OX;
                decimal? OY;
                decimal[] LatLng = new decimal[] { lat, lng };
                //传入两个参数 ,经度和纬度 ,然后返回经过解析的经度和纬度
                try
                {
                    DAL.DeviceinfoDataSetTableAdapters.deviceinfoAdapter da = new DAL.DeviceinfoDataSetTableAdapters.deviceinfoAdapter();
                    da.P_GETLATLNG(lat, lng, out OX, out OY);
                    OX = Convert.ToDecimal(OX);
                    OY = Convert.ToDecimal(OY);
                    if (OX != 0 && OY != 0)
                    {
                        Map.LatLongToPixelXY(Convert.ToDouble(lat), Convert.ToDouble(lng), 18, out PX, out PY);                    PX1 = PX + OX;
                        PY1 = PY + OY;
                        LatLng[0] = Convert.ToDecimal(Map.PixelYToLat(Convert.ToDouble(PY1), 18));
                        LatLng[1] = Convert.ToDecimal(Map.PixelXToLng(Convert.ToDouble(PX1), 18));
                    }
                }
                catch (Exception ex)
                {
                    DAL.Log.Write(ex);
                }
                return LatLng;
            }    }
    }
    这是去年我做的时候的一些记录
      

  2.   

    发错了,我是想问谷歌的纠偏API怎么调用?