`

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**:最后,在...

    同济坐标转换

    这里提到的“经纬度转换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互转)等

    GPS分析工具

    3. **坐标转换**:根据需要将经纬度数据从不同坐标系转换到WGS84坐标系,以便与Google Earth兼容。 4. **KML生成**:将解析后的数据转化为KML文件,包括点、线、时间戳等信息。 5. **可视化**:在Google Earth中打开...

Global site tag (gtag.js) - Google Analytics