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

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以下

问题建议

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
中文名: 微机原理及应用 作者: 徐晨图书分类: 软件 资源格式: PDF 版本: 文字版 出版社: 高等教育出版社书号: 9787040145649发行时间: 2004年08月 地区: 大陆 语言: 简体中文 简介: 内容简介: 《微机原理及应用》共13章,主要内容包括:基础知识,微型计算机概论,8086/8088指令系统与寻址方式,汇编语言程序设计,8086的总线操作和时序,半导体存储器,基本输人输出接口,中断,可编程接口芯片及应用,串行通信,模数、数模转换,高性能微处理器,总线标准与微型计算机。 《微机原理及应用》内容全面、实用性强,讲述有特点和新意,同时,配以较多的程序设计实例和接口电路实例。《微机原理及应用》适用于工科各专业本专科生“微机原理”课程,同时可供有关工程技术人员参考使用。 内容截图: 目录: 第1章 基础知识 1.1 数制及其相互转换 1.2 符号数的表示及运算 1.3 定点数和浮点数 1.4 字符编码 思考题与习题 第2章 微型计算机概论 2.1 计算机概论 2.2 微型计算机 2.3 8086微处理器 思考题与习题 第3章 8086/8088指令系统与寻址方式 3.1 概述 3.2 数据寻址方式 3.3 指令格式及指令执行时间 3.4 8086/8088指令系统 思考题与习题 第4章 汇编语言程序设计 4.1 汇编语言语法 4.2 汇编语言程序实现 4.3 汇编语言程序设计方法及应用 4.4 汇编语言程序设计举例 思考题与习题 第5章 8086的总线操作和时序 5.1 概述 5.2 8086的两种模式 5.3 最小模式下的8086时序分析 5.4 最大模式下的8086时序分析 思考题与习题 第6章 半导体存储器 6.1 内存和外存 6.2 半导体存储器 6.3 随机存储器RAM 6.4 只读存储器 6.5 存储器与系统的连接 思考题与习题 …… 第7章 基本输入输出接口 第8章 中断 第9章 可编程接口芯片及应用 第10章 串行通信 第11章 模数、数模转换 第12章 高性能微处理器 第13章 总线标准与微型计算机 附录1 ASCII码表 附录2 8088/80896指令系统 附录3 IBMPC/AT中断功能表 附录4 常用DOS功能调用(INT21H) 附录5 BIOS功能调用 附录6 DEBUG命令 附录7 汇编语言程序上机过程 附录8 键盘扫描码 索引 参考文献
### 回答1: 要获取美国地区的城市洲编码,可以使用Java中的一些API或库来实现。一个常见的方法是使用GeoNames API,该API提供了世界各地的地理数据,包括城市和其对应的洲编码。 首先,需要在Java项目中导入相关的库或API。可以通过在项目的构建文件中添加依赖项或直接引入API的jar文件来实现。例如,可以将GeoNames API引入项目中。 然后,需要使用Java代码调用API来获取美国地区的城市洲编码。可以使用HttpURLConnection或HttpClient等类库来发送HTTP请求,并解析返回的JSON或XML格式的数据。 以下是一个示例代码,展示了如何使用GeoNames API获取美国地区的城市洲编码: import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; public class CityCode { public static void main(String[] args) { try { String apiUrl = "http://api.geonames.org/searchJSON?country=US&maxRows=10&username=demo"; URL url = new URL(apiUrl); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); conn.setRequestProperty("Accept", "application/json"); BufferedReader br = new BufferedReader(new InputStreamReader((conn.getInputStream()))); String output; System.out.println("Output from Server .... \n"); while ((output = br.readLine()) != null) { System.out.println(output); } conn.disconnect(); } catch (Exception e) { e.printStackTrace(); } } } 上述代码将发送一个GET请求到GeoNames API的搜索终点,限定了国家为美国并最多返回10个结果。然后,将返回的数据输出到控制台。 请注意,上述示例中的用户名为"demo",这仅用于演示目的。在实际使用时,需要注册一个免费账户并获取自己的API密钥。具体的使用方法可以参考GeoNames API的官方文档。 通过这种方式,可以获取到美国地区城市的洲编码。 ### 回答2: 要通过Java获取美国地区的城市洲编码,可以使用Java的网络爬虫技术来实现。 1. 首先,需要选择一个合适的网站,该网站提供了美国地区城市洲编码的信息。一个可行的选择是使用国际标准组织(ISO)的网站,该网站提供了各个国家和地区的代码。 2. 使用Java的网络爬虫技术,可以使用Jsoup库来解析HTML页面。首先,需要导入Jsoup库的相关依赖。 3. 在Java程序中,使用Jsoup的connect方法连接到选定的网站,并使用get方法获取HTML页面的内容。 4. 使用Jsoup的选择器来选择页面中包含城市洲编码的元素。可以通过查看网站的源代码,找到包含城市洲编码信息的HTML标签和类名。 5. 使用Jsoup的标签选择器和类选择器获取相应的元素,然后通过调用元素的text方法来获取城市洲编码的文本内容。 6. 将获取的城市洲编码保存到一个数据结构中,例如一个数组或集合。 7. 最后,可以使用Java的输入输出技术将获取的城市洲编码输出或保存到文件中,以供后续使用。 需要注意的是,网络爬虫涉及到对网站的访问和数据的提取,应该遵守合法、合规和道德的原则。在使用网络爬虫技术时,务必尊重网站的规则和隐私政策,并遵守相关法律法规。 ### 回答3: 要获取美国地区的城市州编码,可以使用Java编程语言中的一些工具和库。 一种常见的方法是使用GeoNames开放数据库,该数据库提供了地理位置数据的API接口。你可以通过发送HTTP请求,使用Java中的网络请求库(如HttpClient),向GeoNames API请求美国地区的城市编码数据。 首先,你需要向GeoNames注册一个账号,以获取API密钥。然后,使用Java编写代码来发送HTTP请求并处理返回结果。以下是一个示例代码段: ```java import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.util.EntityUtils; public class GeoNamesExample { public static void main(String[] args) { String apiUsername = "YOUR_USERNAME"; String apiUrl = "http://api.geonames.org/searchJSON?formatted=true&country=US&lang=en&username=" + apiUsername; try { HttpClient httpClient = HttpClientBuilder.create().build(); HttpGet request = new HttpGet(apiUrl); HttpResponse response = httpClient.execute(request); String jsonResponse = EntityUtils.toString(response.getEntity()); // 解析JSON响应,提取城市和州的编码信息 // 这里使用了一个JSON库,如Jackson或Gson } catch (Exception e) { e.printStackTrace(); } } } ``` 在上面的示例中,你需要将"YOUR_USERNAME"替换为你在GeoNames上注册的账号的用户名。然后,通过构建一个HTTP GET请求并执行它,从GeoNames API获取JSON响应。你可以使用一个JSON库,如Jackson或Gson,来解析这个响应,并提取所需的城市和州的编码信息。 请注意,以上示例仅展示了获取美国地区城市州编码的基本过程。你可能需要根据你的具体需求和GeoNames API的文档,对查询参数和解析逻辑进行适当的调整和修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值