地区与地区编码的相互转换

来源:互联网 发布:无线ad hoc网络 编辑:程序博客网 时间:2024/04/30 10:50

geo

地区与该地区编码的相互转换

特性

  • 简洁的转换API
  • 支持地区名称转换为该地区的编码
  • 支持地区编码转换为该地区的名称
  • 支持获得该地区的上级所属地区
  • 支持通过两个地区的的地址获得其之间的距离

使用

通过maven工程直接引入*

举个栗子��

/**     *将地址转为该地区编码     */    @Test    public void testPlaceName1(){        GeoCodeInfo geoCode = TermRelationTreeCoordinate.completeGeoCode("海南海口龙华区海外大厦");        if (geoCode != null) {            System.out.println(geoCode.toString());        }else{            System.out.println("无数据");        }    }    /**     *将地区编码转为该地址     */    @Test    public void testPlaceName2(){        String name = TermRelationTreeCoordinate.geoCodeComplete("1191700000");        if(name !=null){            System.out.println(name);        }else {            System.out.println("暂无数据");        }    }    /**     *将长地址拆分为短地址     */    @Test    public void testPlaceName3(){        GeoInfo geoInfo = TermRelationTreeCoordinate.completeGeo("广东广州天河区顺盈商业大厦");        if (geoInfo != null) {            System.out.println(geoInfo.toString());        }else{            System.out.println("不能补全");        }    }    /**     *根据地址获得短地址的地区编码和该地区所对应的经纬度     */    @Test    public void testPlaceName4(){        GeoCodeInfo geoCode = TermRelationTreeCoordinate.completeGeoCode("广东省韶关市翁源县官渡镇");        if(geoCode !=null){            System.out.println(geoCode.toString());            System.out.println("经度:"+geoCode.getCoordinates().getCoordinateA().getLongitude()+"\t纬度:"+geoCode.getCoordinates().getCoordinateA().getLatitude());            System.out.println("经度:"+geoCode.getCoordinates().getCoordinateB().getLongitude()+"\t纬度:"+geoCode.getCoordinates().getCoordinateB().getLatitude());            System.out.println("经度:"+geoCode.getCoordinates().getCoordinateC().getLongitude()+"\t纬度:"+geoCode.getCoordinates().getCoordinateC().getLatitude());            System.out.println("经度:"+geoCode.getCoordinates().getCoordinateD().getLongitude()+"\t纬度:"+geoCode.getCoordinates().getCoordinateD().getLatitude());        }    }    /**     * 根据短地址获得其所属上级的所有地址和编码     */    @Test    public void testPlaceName5(){        List<SpotItem> ugroup = TermRelationTreeCoordinate.tree.collectSpot("翁源县", false);        List<SpotUnit> levelAndParent = TermRelationTreeCoordinate.getLevelAndParent(ugroup);        if (levelAndParent != null){            for (SpotUnit spotUnit:levelAndParent) {                System.out.println("地区代码:" + spotUnit.getCode() + "\t地名:" + spotUnit.getName() + "\t所属区域:" + spotUnit.getParent_index().get(0).getName());            }        }    }    /**     * 根据短地址获得其所属上级的所有地址(不包含国家)     */    @Test    public void testPlaceName6(){        GeoInfo geoInfo = TermRelationTreeCoordinate.completeGeo("翁源县");        System.out.println(geoInfo);        System.out.println("省:" + geoInfo.getProvinceName() + "\t市:" + geoInfo.getCityName() + "\t区/县:" + geoInfo.getCountyName() + "\t镇:" + geoInfo.getTownName());    }    /**     * 根据两个地址计算距离(粗略计算)     */    @Test    public void testPlaceName7(){        String placeStart = "翁源县";        String placeEnd = "广东广州天河区顺盈商业大厦";        double distance = TermRelationTreeCoordinate.GetDistance(placeStart, placeEnd);        if (distance != -1){            System.out.println(placeStart + " 距离 " + placeEnd + distance / 1000.0 + "千米");        }else {            System.out.println("无此数据");        }    }

执行结果

性能

  • 第一次执行时会比较慢,在初始化之后访问都在4ms以下

问题建议

  • 联系我的邮箱:ilovey_hwy@163.com
  • GitHub地址:https://github.com/HWYWL/geo
原创粉丝点击