`

google经纬度互转

 
阅读更多

https://developers.google.com/maps/documentation/geocoding/?hl=zh-CN#GeocodingRequests获得google的GPS服务的api文档

 

 

package com.hhj.gps;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONException;
import org.json.JSONObject;

/*import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
import com.google.android.maps.Overlay;
import com.google.android.maps.Projection;*/

import android.R.integer;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Point;
import android.location.Address;
import android.location.Geocoder;
import android.location.Location;
import android.location.LocationManager;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class GoogleGeographyQuery{
    static double lng;
    static double lat;
    /*查询经纬度*/
    public static double[] jingweidu(String AddressName){
        //List<Map<String, Object>> mData=new ArrayList<Map<String, Object>>();
        String url = "http://maps.googleapis.com/maps/api/geocode/json?address=" + AddressName + "&sensor=false";
        HttpClient client = new DefaultHttpClient();
        HttpGet get = new HttpGet(url);
        try {
            HttpResponse response = client.execute(get);
            HttpEntity entity = response.getEntity();
            InputStream input = entity.getContent();
            int t;
            StringBuffer buffer = new StringBuffer();
            while ((t = input.read()) != -1) {
                buffer.append((char) t);
               
            }
            //tv.setText(buffer);

            // json解析
            JSONObject object = new JSONObject(buffer.toString());
            JSONObject location = object.getJSONArray("results")
                    .getJSONObject(0)// 获得中括号的内容
                    .getJSONObject("geometry")// 获得大括号中的内容
                    .getJSONObject("location");
            lng = location.getDouble("lng");
            lat = location.getDouble("lat");
            Log.i("HHJ", "经纬度是 : "+lng+"   "+lat);
            double[] data ={lng,lat};
            return data;

        } catch (ClientProtocolException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return null;
   
    }
   
    public static String geocodeAddr(String latitude, String longitude) {
        String addr = "";
        // 也可以是http://maps.google.cn/maps/geo?output=csv&key=abcdef&q=%s,%s,不过解析出来的是英文地址
        // 密钥可以随便写一个key=abc
        // output=csv,也可以是xml或json,不过使用csv返回的数据最简洁方便解析
        String url = String.format("http://ditu.google.cn/maps/geo?output=csv&key=abcdef&q=%s,%s",latitude, longitude);
        URL myURL = null;
        URLConnection httpsConn = null;
        try {
            myURL = new URL(url);
        } catch (MalformedURLException e) {
            e.printStackTrace();
            return null;
        }

        try {
            httpsConn = (URLConnection) myURL.openConnection();
            if (httpsConn != null) {
                InputStreamReader insr = new InputStreamReader(httpsConn.getInputStream(), "UTF-8");
                BufferedReader br = new BufferedReader(insr);
                String data = null;
                if ((data = br.readLine()) != null) {
                    System.out.println(data);
                    String[] retList = data.split(",");
                    if (retList.length > 2 && ("200".equals(retList[0]))) {
                        addr = retList[2];
                        addr = addr.replace("\"", "");
                    } else {
                        addr = "";
                    }
                    Log.i("HHJ", "123  : "+addr);
                }
                insr.close();
            }
        } catch (IOException e) {
            e.printStackTrace();
            return null;
        }
        return addr;
    }

}

分享到:
评论

相关推荐

    百度坐标与google坐标之间的相互转换

    百度坐标与google坐标之间的相互转换,google坐标与google坐标之间的相互转换。

    Mercator(墨卡托)坐标和WGS84(经纬度)互转

    在WebGIS中,Mercator坐标通常以米为单位,用于谷歌地图、OpenStreetMap等在线地图服务,其标准投影公式为:x=λ-λ₀,y=ln(tan(π/4+φ/2)),其中λ、φ分别是经度和纬度,λ₀是中央经线。 WGS84是全球定位系统...

    delphi经纬度换算源程序

    在IT行业中,尤其是在地理信息系统(GIS)和定位服务领域,经纬度换算是一个常见的任务。经纬度是一种在地球表面表示位置的方式,其中经度代表东西方向的位置,纬度则表示南北方向的位置。在不同的坐标系统之间进行...

    Gps坐标系转换Java工具类WGS坐标与Google和百度坐标互转

    使用时,只需传入相应的经纬度值,即可得到转换后的坐标。 在实际应用中,这些工具类对于处理跨平台的地图数据交换、地图标注定位等场景非常有用。例如,当用户的位置信息是从GPS获取的WGS84坐标,但我们需要将其...

    GPS百度和谷歌坐标互转示例和代码(新)

    本文将深入探讨“GPS百度和谷歌坐标互转”的技术实现,基于给定的Java代码示例,为开发者提供详细的转换方法和步骤。 首先,我们需要了解两种坐标系的基础知识。百度地图使用的是自定义的“bd09ll”坐标系,而谷歌...

    locationUtils.zip

    百度经纬度互转高德经纬度源代码,具有以下功能 1、通过经纬度获取地址信息。 2、通过地址信息获取经纬度。 3、高德谷歌经纬度转百度地图经纬度。 4、百度经纬度转高德谷歌经纬度。 注,本程序来自于互联网,看了...

    GoogleEarth中UTM坐标与大地坐标精密互转算法的实现

    在Google Earth中,用户可以设置显示经纬度或UTM坐标,但系统并未提供内置的坐标转换功能,尤其是对于大量数据的转换。由于UTM坐标在国外广泛应用,而在国内相对不常见,这在进行跨国项目,如中国石油的海外勘探开发...

    高德、百度、WGS84坐标互换(后羿采集器在线批量转换)

    使用后羿采集器规则,利用线上坐标在线转换网站,批量实现三种坐标之间的转换

    c# GPS坐标与火星坐标互转

    Google在中国大陆使用的也是经过调整的GCJ-02坐标,有时被称为"谷歌坐标"。 进行坐标转换的关键在于算法。C#中,我们可以实现一个类库来处理这两种坐标系统的转换。GCJ-02坐标系统对WGS84坐标进行了两次加密,因此...

    ios 坐标系转化(各种坐标系互转)

    从 CLLocationManager 取出来的经纬度去 Google Maps API 做逆地址解析,当然是错的! 从 MKMapView 取出来的经纬度去 Google Maps API 做逆地址解析终于对了。去百度地图API做逆地址解析,依旧是错的! 从上面两...

    (完整word)如何把cad路线图导入googleearth.doc

    4. **运行转换命令**:在CAD命令行中输入“acad2kml”或“a2k”,调用插件,输入Google Earth参考点的经纬度和转换系数(如1000,用于缩放比例),然后保存生成的.kml文件。 5. **导入Google Earth**:最后,在...

    excel与KML转换器.rar

    KML是Google Earth、Google Maps以及许多其他地理信息系统软件所采用的一种标准格式,用于存储地理位置和相关数据。本转换器主要针对需要将地理坐标数据在桌面应用和在线地图服务间迁移的用户。 在Excel中,你可以...

    同济坐标转换

    这里提到的“经纬度转换kml格式”是指将经纬度坐标转换为KML(Keyhole Markup Language)格式,这是一种由Google开发的用于存储地理标记和地理数据的XML方言。 KML文件常用于Google Earth和Google Maps等应用程序,...

    ex_map.rar_android_android mapa_android mapapi_ex_map_google ear

    Android MapAPI是Google提供的一种服务,它允许开发者在Android应用中集成交互式地图功能。MapAPI提供了丰富的功能,如地图显示、定位、路线规划、地理编码(地址转换为经纬度)和反地理编码(经纬度转换为地址)。...

    Global Mapper 12

    **MapInfo与谷歌地球互转** Global Mapper 12 提供了与其他GIS平台,如MapInfo,以及流行的虚拟地球平台谷歌地球之间的数据转换能力。这种兼容性增强了数据的灵活性和共享性,具体包括: 1. **MapInfo格式转换**:...

    Google地图运用开发手册

    Google地图API是Google提供的一个强大的工具,允许开发者在Android应用中集成交互式地图。通过这个API,开发者可以实现以下功能: 1. **显示地图**:在活动中添加MapView控件,加载不同类型的地图,如卫星图、地形...

    google map api v2开发实例

    谷歌地图API V2是Google为开发者提供的一种强大的工具,用于在网页或移动应用中集成交互式地图功能。这个开发实例集全面介绍了如何利用这个API创建各种功能,对初学者来说是一份宝贵的资源。下面,我们将深入探讨这...

    qt编写的地图综合地图应用

    在描述中提到的"地图综合地图应用"可能包括了多种地图功能,如路线规划、定位、地理编码(将地址转换为经纬度坐标)和反地理编码(将经纬度坐标转换为地址)。这些功能可以通过Qt的QGeoRoutingManager、...

    太乐地图下载器V5.3.6(2019全地图全功能).rar

    地图随意变色、BS/CS/Mobile离线访问、离线站点自动构建、国家基本比例尺地形图分幅下载、大图智能分块、地标自动绘制、坐标系转换(CGCS2000/WGS84/Xianan80/Beijing54等)、专业纠偏(WGS84/GCJ-02/BD-09互转)等

    太乐地图下载器V5.2.7全数据全功能版本(2018最新)

    地图随意变色、BS/CS/Mobile离线访问、离线站点自动构建、国家基本比例尺地形图分幅下载、大图智能分块、地标自动绘制、坐标系转换(CGCS2000/WGS84/Xianan80/Beijing54等)、专业纠偏(WGS84/GCJ-02/BD-09互转)等

Global site tag (gtag.js) - Google Analytics