管灌系统巡查员智能手机App
app/src/main/java/com/dayu/pipirrapp/utils/MapUtils.java
@@ -9,7 +9,7 @@
 * gcj02 02年提出,火星坐标,经过加密算法。大多数非百度中国地图厂商基本都是使用的火星坐标:高德,腾讯,谷歌中国cn
 * bd09  09年提出,百度坐标,经过火星坐标再次加密,相当于对大地坐标经过了二次加密。百度自己使用
 * 一般的算法,没有直接bd09->wgs84或者wgs84->bd09,都需要借助wgs84->gcj02或者gcj02->wgs84算法推导。
 * <p>
 * 备注:坐标系转换
 */
public class MapUtils {
@@ -47,10 +47,12 @@
     * @return
     */
    public static boolean outOfChina(double lat, double lon) {
        if (lon < 72.004 || lon > 137.8347)
        if (lon < 72.004 || lon > 137.8347) {
            return true;
        if (lat < 0.8293 || lat > 55.8271)
        }
        if (lat < 0.8293 || lat > 55.8271) {
            return true;
        }
        return false;
    }
@@ -103,7 +105,7 @@
     * @param lon
     * @return
     */
    public static Gps gcj02_To_Wgs84_exact(double lat,double lon) {
    public static Gps gcj02_To_Wgs84_exact(double lat, double lon) {
        if (outOfChina(lat, lon)) {
            return gcj02_To_Wgs84(lat, lon);
        }
@@ -127,8 +129,16 @@
            if ((Math.abs(dLat) < threshold) && (Math.abs(dLon) < threshold)) {
                break;
            }
            if (dLat > 0) { pLat = wgsLat; } else { mLat = wgsLat;}
            if (dLon > 0) { pLon = wgsLon; } else { mLon = wgsLon;}
            if (dLat > 0) {
                pLat = wgsLat;
            } else {
                mLat = wgsLat;
            }
            if (dLon > 0) {
                pLon = wgsLon;
            } else {
                mLon = wgsLon;
            }
            if (++i > 1000) break;
        }
@@ -179,17 +189,20 @@
}
class Gps{
    double lat,lon;
class Gps {
    double lat, lon;
    public Gps() {
    }
    public Gps(double lat,double lon){
    public Gps(double lat, double lon) {
        this.lat = lat;
        this.lon = lon;
    }
    @Override
    public String toString() {
        return "{"+lat+","+lon+"}";
        return "{" + lat + "," + lon + "}";
    }
}