`
01jiangwei01
  • 浏览: 540867 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java 发送http请求,开源框架,通过经纬度获取内容信息google

 
阅读更多

首先先介绍java方法:

首先要增加一个关于异步IO需要的包:
1、async-http-client包,可以在这里下载:https://oss.sonatype.org/content/repositories/releases/com/ning/async-http-client/1.6.2/
2、log4j的包,这个不用我说了,都知道在哪里
3、slf4j-api 的包,目前用1.5以上的版本比较多。
4、slf4j-log4j 的包,可以看出,slf4j是在log4j基础上包装的。
OK,就这几个了,弄好后再看看下面这段代码,通过使用它,性能可以得到明显改善:

AsyncHttpClient client = new AsyncHttpClient();
try {
Future<Response> f = client.prepareGet("http://www.google.com.hk/").execute();
System.out.println(f.get().getResponseBody("Big5"));//谷歌的输出编码集为Big5,反向解析结果的时候使用
}catch(...) {....}

这段代码是不是超级简单,可以通过上面描述的三种方式:
1、直接调用
2、将GetMethod或PostMethod对象作为共享对象反复使用。
3、使用AsyncHttpClient

 2,下面介绍如何通过经纬度获取地址信息?

Google Maps API Web Services,是一个为您的地图应用程序提供地理数据的 Google 服务的 HTTP 接口集合。具体包括:Google Geocoding API、Google Directions API、Google Elevation API、Google Places API。本文将探讨如何通过Google Geocoding API服务来获取地址信息。

 

Google Maps API 提供这些网络服务作为从外部服务中请求 Google Maps API 数据以及在您的地图应用程序中使用它们的接口。这些网络服务使用特定网址的 HTTP 请求并将网址参数作为参数提供给服务。一般来讲,这些服务会在 HTTP 请求中以 JSON 或 XML 的形式传回数据,供您的应用程序进行解析和/或处理。
一个典型的网络服务请求通常采用以下形式:
http://maps.google.com/maps/api/{service}/{output}?{parameters}
其中 service 表示所请求的特定服务,output 表示响应格式(通常为 json 或 xml)。

 

地址查询(反向地址解析)请求
Google Geocoding API 请求必须采用以下形式:

http://maps.google.com/maps/api/geocode/output?parameters
其中,output 可以是以下值之一:

json(建议)表示以 JavaScript 对象表示法 (JSON) 的形式输出
xml 表示以 XML 的形式输出
有些参数是必需的,有些是可选的。根据网址的标准,所有参数均使用字符 & (&) 分隔。下面枚举了这些参数及其可能的值。

Google Geocoding API 使用以下网址参数定义地址查询请求:

latlng(必需)- 您希望获取的、距离最近的、可人工读取地址的纬度/经度文本值。
bounds(可选)- 要在其中更显著地偏移地址解析结果的可视区域的边框。
region(可选)- 区域代码,指定为 ccTLD(“顶级域”)双字符值。
language(可选)- 传回结果时所使用的语言。请注意,我们会经常更新支持的语言,因此该列表可能并不详尽。如果未提供 language,地址解析器将尝试尽可能使用发送请求的区域的本地语言。
sensor(必需)- 指示地址解析请求是否来自装有位置传感器的设备。该值必须为 true 或 false。
注意:bounds 和 region 参数只会影响地址解析器返回的结果,但不能对其进行完全限制。

 

实例一:创建查询坐标(39.910093,116.403945)的地址信息的请求,要求以xml格式输出响应,语言为简体中文(zh-CN)。

http://maps.google.com/maps/api/geocode/xml?latlng=39.910093,116.403945&language=zh-CN&sensor=false
注意:经纬度书写的顺序为(纬度,经度)

 返回json格式数据如下:

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "128号",
               "short_name" : "128号",
               "types" : [ "street_number" ]
            },
            {
               "long_name" : "南池子大街",
               "short_name" : "南池子大街",
               "types" : [ "route" ]
            },
            {
               "long_name" : "东城区",
               "short_name" : "东城区",
               "types" : [ "sublocality", "political" ]
            },
            {
               "long_name" : "北京",
               "short_name" : "北京",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "北京市",
               "short_name" : "北京市",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "中国",
               "short_name" : "CN",
               "types" : [ "country", "political" ]
            }
         ],
         "formatted_address" : "中国北京市东城区南池子大街128号",
         "geometry" : {
            "location" : {
               "lat" : 39.9102420,
               "lng" : 116.4039110
            },
            "location_type" : "ROOFTOP",
            "viewport" : {
               "northeast" : {
                  "lat" : 39.91159098029149,
                  "lng" : 116.4052599802915
               },
               "southwest" : {
                  "lat" : 39.90889301970849,
                  "lng" : 116.4025620197085
               }
            }
         },
         "postcode_localities" : [],
         "types" : [ "street_address" ]
      },
      {
         "address_components" : [
            {
               "long_name" : "皇史宬站",
               "short_name" : "皇史宬站",
               "types" : [ "bus_station", "transit_station", "establishment" ]
            },
            {
               "long_name" : "东城区",
               "short_name" : "东城区",
               "types" : [ "sublocality", "political" ]
            },
            {
               "long_name" : "北京",
               "short_name" : "北京",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "北京市",
               "short_name" : "北京市",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "中国",
               "short_name" : "CN",
               "types" : [ "country", "political" ]
            }
         ],
         "formatted_address" : "中国北京市东城区皇史宬",
         "geometry" : {
            "location" : {
               "lat" : 39.9099750,
               "lng" : 116.4032030
            },
            "location_type" : "APPROXIMATE",
            "viewport" : {
               "northeast" : {
                  "lat" : 39.91132398029149,
                  "lng" : 116.4045519802915
               },
               "southwest" : {
                  "lat" : 39.90862601970849,
                  "lng" : 116.4018540197085
               }
            }
         },
         "postcode_localities" : [],
         "types" : [ "bus_station", "transit_station", "establishment" ]
      },
      {
         "address_components" : [
            {
               "long_name" : "东城区",
               "short_name" : "东城区",
               "types" : [ "sublocality", "political" ]
            },
            {
               "long_name" : "北京",
               "short_name" : "北京",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "北京市",
               "short_name" : "北京市",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "中国",
               "short_name" : "CN",
               "types" : [ "country", "political" ]
            }
         ],
         "formatted_address" : "中国北京市东城区",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 39.97403660,
                  "lng" : 116.45239070
               },
               "southwest" : {
                  "lat" : 39.85862530,
                  "lng" : 116.37713420
               }
            },
            "location" : {
               "lat" : 39.92835300000001,
               "lng" : 116.4163570
            },
            "location_type" : "APPROXIMATE",
            "viewport" : {
               "northeast" : {
                  "lat" : 39.97403660,
                  "lng" : 116.45239070
               },
               "southwest" : {
                  "lat" : 39.85862530,
                  "lng" : 116.37713420
               }
            }
         },
         "postcode_localities" : [],
         "types" : [ "sublocality", "political" ]
      },
      {
         "address_components" : [
            {
               "long_name" : "北京市",
               "short_name" : "北京市",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "中国",
               "short_name" : "CN",
               "types" : [ "country", "political" ]
            }
         ],
         "formatted_address" : "中国北京市",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 41.06081590,
                  "lng" : 117.5146250
               },
               "southwest" : {
                  "lat" : 39.44275810,
                  "lng" : 115.42341160
               }
            },
            "location" : {
               "lat" : 39.904030,
               "lng" : 116.4075260
            },
            "location_type" : "APPROXIMATE",
            "viewport" : {
               "northeast" : {
                  "lat" : 41.06081590,
                  "lng" : 117.5146250
               },
               "southwest" : {
                  "lat" : 39.44275810,
                  "lng" : 115.42341160
               }
            }
         },
         "postcode_localities" : [],
         "types" : [ "administrative_area_level_1", "political" ]
      },
      {
         "address_components" : [
            {
               "long_name" : "北京",
               "short_name" : "北京",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "北京市",
               "short_name" : "北京市",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "中国",
               "short_name" : "CN",
               "types" : [ "country", "political" ]
            }
         ],
         "formatted_address" : "中国北京市",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 41.06081590,
                  "lng" : 117.5146250
               },
               "southwest" : {
                  "lat" : 39.44275810,
                  "lng" : 115.42341160
               }
            },
            "location" : {
               "lat" : 39.904030,
               "lng" : 116.4075260
            },
            "location_type" : "APPROXIMATE",
            "viewport" : {
               "northeast" : {
                  "lat" : 40.21649620,
                  "lng" : 116.78298350
               },
               "southwest" : {
                  "lat" : 39.66127140,
                  "lng" : 116.01193430
               }
            }
         },
         "postcode_localities" : [],
         "types" : [ "locality", "political" ]
      },
      {
         "address_components" : [
            {
               "long_name" : "中国",
               "short_name" : "CN",
               "types" : [ "country", "political" ]
            }
         ],
         "formatted_address" : "中国",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 53.56097399999999,
                  "lng" : 134.77280990
               },
               "southwest" : {
                  "lat" : 18.15352160,
                  "lng" : 73.49941360
               }
            },
            "location" : {
               "lat" : 35.861660,
               "lng" : 104.1953970
            },
            "location_type" : "APPROXIMATE",
            "viewport" : {
               "northeast" : {
                  "lat" : 53.56097399999999,
                  "lng" : 134.77280990
               },
               "southwest" : {
                  "lat" : 18.15352160,
                  "lng" : 73.49941360
               }
            }
         },
         "postcode_localities" : [],
         "types" : [ "country", "political" ]
      }
   ],
   "status" : "OK"
}

 

分享到:
评论

相关推荐

    利用gi根据经纬度解析城市名

    例如,可以使用`geotools`的Web服务模块(WMS或WFS)连接到提供这种服务的服务器,如OpenStreetMap或Google Maps,然后通过发送请求获取城市名称。 `vividsolutions`是另一个与GIS相关的开发包,尤其是其JTS(Java ...

    java编写电子地图程序

    Google Maps、OpenStreetMap等提供瓦片服务,允许开发者通过HTTP请求获取特定区域的图像块。在Java中,使用HttpURLConnection或Apache HttpClient可以实现网络请求,再通过图像处理库,如Java2D或JavaFX,将收到的...

    Android集成主流优秀第三方组件框架

    地图定位工具类(ToolLocation.java),读取GPS状态、请求定位、获取经纬度等方法 社会化分享工具类(ToolShareSDK.java),各大开发平台分享API操作 短信验证码工具类(ToolMSM.java),移动/联通/电信三网发送手机...

    使用Java开发手机电子地图系统

    在这个项目中,很可能使用了Google Maps API或开源的Mapbox等服务。这些API提供了地图展示、定位、路径规划、地理编码(地址转换为经纬度)和反地理编码(经纬度转换为地址)等功能。开发者需要理解和熟练使用这些...

    集成安卓主流优秀第三方组件框架.zip

    地图定位工具类(ToolLocation.java),读取GPS状态、请求定位、获取经纬度等方法 社会化分享工具类(ToolShareSDK.java),各大开发平台分享API操作 短信验证码工具类(ToolMSM.java),移动/联通/电信三网发送手机...

    基于Android的输入城市查询天气情况

    在Android应用中,你需要发送HTTP请求到API服务器获取天气信息。这通常通过网络库如Retrofit、Volley或者使用Android的AsyncTask或新版本的Coroutines进行异步处理。请求参数通常包括城市的经纬度或城市名,以及...

    RocketMQ集群、分布式WebSocket实现以及地图找房功能Java代码实现.zip

    开发者通常会创建一个Web应用,用户可以在地图上进行交互,例如输入地理位置、设置搜索条件,然后应用通过调用地图服务的接口获取附近房源信息。Java后端负责处理这些请求,可能需要处理的位置数据包括经纬度、半径...

    Android例子源码集成安卓主流优秀第三方组件框架.zip

    地图定位工具类(ToolLocation.java),读取GPS状态、请求定位、获取经纬度等方法 社会化分享工具类(ToolShareSDK.java),各大开发平台分享API操作 短信验证码工具类(ToolMSM.java),移动/联通/电信三网发送手机...

    Andoid 天气预报源码

    - 要获取天气信息,应用需要向天气API发送HTTP请求。Android支持多种网络库,如Volley、OkHttp或Retrofit。Retrofit是一个流行的网络库,可以方便地将接口方法转换为网络请求,并支持JSON数据的自动序列化和反序列...

    基于Java的用的在线地图浏览模块.zip

    在本项目中,“基于Java的在线地图浏览模块”是一个利用Java技术实现的程序,它能够帮助用户通过网络查看和操作地图。这个模块可能是为Web应用或者桌面应用设计的,允许用户进行地图的缩放、平移、定位以及可能的...

    Android中获取当前位置

    本节将深入探讨如何在Android系统中利用网络定位技术获取设备的经纬度坐标,并将其显示在地图上,同时结合重力感应来辅助用户判断方向。 1. **Android定位框架** Android提供了多种方式来获取位置信息,包括GPS...

    TweetMap:TweetMap-作业1-源码

    7. **后端处理**:如果项目涉及到服务器端处理,可能会使用Spring Boot、Tomcat等Java Web框架来创建RESTful API,接收前端请求,处理数据,并返回结果。 8. **数据可视化**:推文在地图上的呈现可能涉及到数据可视...

    基于安卓系统的位置服务终端软件研发.pdf

    【位置服务】位置服务(Location-Based Services, LBS)是指通过移动通信网络获取移动终端的位置信息(经纬度坐标),为用户提供相应服务的一种增值业务。LBS在交通导航、紧急救援、社交网络、广告推送等领域有着...

    地图报警

    开发者需要获取API密钥,并通过HTTP请求来获取地图图片或地理信息。 3. **数据处理**:地图报警涉及对报警事件的数据处理,这可能需要数据库支持,如MySQL、PostgreSQL或MongoDB。报警数据需要实时更新,并与地图上...

    地图练习

    地图应用通常涉及网络请求和大量计算,这可能需要多线程或异步处理技术,如Java的并发工具、JavaScript的Promise或async/await,确保应用的响应性和性能。 总之,“MapPractice”可能涵盖了从基础的地图数据结构到...

    Hybrid(8级)

    2. **React Native**:React Native是Facebook开发的开源框架,它允许开发者用JavaScript和React库来编写原生移动应用。它提供了“Write Once, Run Everywhere”的能力,即一次编写,多平台运行,同时保持接近原生的...

    webgis项目——美食

    4. **后端开发**:后端通常使用Java、Python、Node.js等语言开发,与数据库交互,处理用户请求,如美食数据的增删改查。可能涉及的框架有Spring Boot、Django或Express等。 5. **数据库设计**:数据库是存储美食...

    Rutas-y-Geolacalizaci-n-Final

    在服务器端,可以集成第三方API,如Google Maps Geolocation API,通过HTTP请求获取设备的位置信息。 其次,地理编码(Geocoding)是将地址转换为经纬度的过程,反向地理编码(Reverse Geocoding)则是将经纬度转换...

    trackLoc

    - **HTTP/HTTPS协议**:如果设备通过HTTP或HTTPS协议发送位置信息,Java的HttpURLConnection或者HttpClient库可以用来处理这些请求。 3. **JSON解析** - **JSON (JavaScript Object Notation)**:位置数据通常以...

Global site tag (gtag.js) - Google Analytics