根据省份等地址获取经纬度,或根据经纬度获取地址信息

在web开发涉及地图操作的时候或者移动客户端开发中有时候有以下需求:

下面主要记录通过百度提供的API的一个解决方案:

在百度开发平台中提供了这样一个叫Geocoding 的API,这个API用于提供从地址到经纬度坐标或者从经纬度坐标到地址的转换服务,使用的是http协议,返回JSON或者XML数据。

地理编码:即地址解析,由详细到街道的结构化地址得到百度经纬度信息,例如:“北京市海淀区中关村南大街27号”地址解析的结果是“lng:116.31985,lat:39.959836”。同时,地理编码也支持名胜古迹、标志性建筑名称直接解析返回百度经纬度,例如:“百度大厦”地址解析的结果是“lng:116.30815,lat:40.056885” ,通用的POI检索需求,建议使用Place API。

逆地理编码:即逆地址解析,由百度经纬度信息得到结构化地址信息,例如:“lat:31.325152,lng:120.558957”逆地址解析的结果是“江苏省苏州市虎丘区塔园路318号”。

使用限制:

百度地图Geocoding API是一套免费对外开放的API,默认配额100万次/天。

使用方法:

第一步:申请ak(即获取密钥),若无百度账号则首先需要注册百度账号。

第二步,拼写发送http请求的url,注意需使用第一步申请的ak。

第三步,接收http请求返回的数据(支持json和xml格式)。

Hello, World示例:

发送一个地址是“百度大厦”的请求,返回该地址对应的地理坐标。示例URL如下:

http://api.map.baidu.com/geocoder/v2/?address=北京市海淀区上地十街10号&output=json&ak=E4805d16520de693a3fe707cdc962045&callback=showLocation

案例:

1、封装工具类

class Tools {
    public static $lngLatUrl = ‘http://api.map.baidu.com/geocoder/v2/‘;//请求地址
    public static $ak = ‘4UgeXHtyx6ahqmnsFPP7SnHpE‘;//用户申请注册的key

    /**
     * 百度地图API,通过省份/城市/区县 获取对应地址的经纬度
     * @param string $city 省份/城市/区县
     * @param string $address 省份/城市/区县或更详细的地址   * @param string $output 返回数据的格式
     */
    public static function lngLat($address,$city = ‘‘,$output = ‘json‘) {
        $res = json_decode(file_get_contents(self::$lngLatUrl."?ak=".self::$ak."&output=".$output."&address=".urlencode($address)."&city=".urlencode($city)));
        if ($res->status == 0) {
            return $res->result->location;
        }
        return false;
    }
}

2、调用API

public function Api() {
        $address = ‘南京市‘;
        $city = ‘江苏省‘;
        $res = Tools::lngLat($address,$city);
        var_dump($res);
    }

3、打印的结果

object(stdClass)[104]
  public ‘lng‘ => float 118.77807440803
  public ‘lat‘ => float 32.057235501806

更详细的介绍:http://developer.baidu.com/map/index.php?title=webapi/guide/webservice-geocoding

时间: 2024-10-24 19:08:29

根据省份等地址获取经纬度,或根据经纬度获取地址信息的相关文章

百度地图定位 : 获取当前位置的经纬度

说明: 1.初始化 BaiduMap SDK要在显示界面之前,即: SDKInitializer.initialize(Context); setContentView(R.layout.main); 2. 设置定位的模式是 LocationMode.Hight_Accuracy 时,在室内可能无法获取到准确的经纬度,会得到默认的值是4.9E-324 处理办法是将模式改为Battery_Saving,或到室外 3.可以根据当前设备网络连接情况和GPS是否开启来设定定位模式 //获得网络连接情况

ios系统经纬度转百度经纬度及经纬度转地址

正在进行的项目中有这样的需求:定位获得当前经纬度,再用百度Place API使用经纬度查询周边信息.这里不需要显示地图,只需要定位.看似思路很顺畅,做起来却不容易. iPhone的GPS定位(CLLocationManager)获得的经纬坐标是基于WGS-84坐标系(世界标准),Google地图使用的是GCJ-02坐标系(中国特色的火星坐标系),这就是为什么获得的经纬坐标在google地图上会发生偏移.我项目需求是使用百度Place API,百度的经纬坐标在GCJ-02的基础上再做了次加密,就是

java读取照片信息 获取照片拍摄时的经纬度

项目结构 源码:ImageInfo.zip 第一步:添加需要的架包metadate-extractor.jar 架包下载地址:https://code.google.com/p/metadata-extractor/downloads/list 或者去Maven仓库下载 http://search.maven.org/#search%7Cga%7C1%7Cmetadata-extractor 第二步:编写解析代码 1 package com.drew.metadata; 2 import jav

转载]IOS LBS功能详解[0](获取经纬度)[1](获取当前地理位置文本 )

原文地址:IOS LBS功能详解[0](获取经纬度)[1](获取当前地理位置文本作者:佐佐木小次郎 因为最近项目上要用有关LBS的功能.于是我便做一下预研. 一般说来LBS功能一般分为两块:一块是地理定位,就是获取当前精度.纬度和地理位置的功能,这一部分功能主要用到CoreLocation.Frameworks.一部分就是显示地图信息.丰富地图内容等,这一部分主要用到MapKit.Frameworks.以上这几个功能的测试最好都要在真机上进行.模拟器上定位一般会在Apple的加州总部. 首先介绍

根据百度地图API获取指定地点的经纬度

做项目时,遇到对地点获取地图中对应的经纬度,作一下笔记,以备以后直接使用 package com.hpzx.data; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import java.net.MalformedURLException; import java.n

js获取本机的网络IP地址

JavaScript是一门脚本语言,是不能操作文件,读取本地信息的,所以想要获取IP,还需要借助后端技术.方法如下: //获取本机的网络ip地址 function jsonpCallback(res) { var ip = res.Ip; // ip地址 var aa = res.Isp.split("市"); var isp = aa[0]; // ip省份 alert(ip); } function getIntnetIP() { var JSONP=document.create

使用html5获取当前手机的经纬度,并接入百度地图API,查询出当前位置

最近项目需要,稍微研究一下html5获取当前地理位置的问题. 获取当前位置的经纬度很简单,一句代码就搞定 [javascript] view plain copy print? navigator.geolocation.getCurrentPosition(function (position) { longitude = position.coords.longitude; latitude = position.coords.latitude; });   然后查阅百度地图API,很eas

Android获取定位权限,获取设备所在的经纬度

转载请标明出处:http://www.cnblogs.com/tangZH/p/8969898.html  前言: 有时候我们仅仅是想要获取设备所在的经纬度,那么直接调用Android相关的api就可以了,不需要去接入高德地图或者谷歌地图等等. 一.获取定位服务 private LocationManager locationManager; locationManager = (LocationManager) mContext.getSystemService(Context.LOCATIO

获取Android设备WIFI的MAC地址 “MAC地址”

需要指出的是:wifi状态和wifi AP状态是互斥的状态:也就是一旦发现WIFI AP打开,WIFI是不能被打开的. 获取Android设备的WIFI MAC地址,首先需要将设备中的WIFI个人热点(AP)关闭:WIFI状态和WIFI AP状态是互斥的两种状态.也就是说:在WIFI AP打开的状态下,WIFI是不能被正常打开的. android系统获取MAC地址的多种方式遍历. 方法一:使用NetworkInterface 方法二: private static String getIpAnd

JS获取上一访问页面URL地址document.referrer实践2

一.JS获取前一个访问页面的URL地址document.referrer 要获取前一个访问页面的URL地址前后端语言都可以,例如PHP的是$_SERVER['HTTP_REFERER'],JavaScript的就是document.referrer. 我们平常开发,虽然和URL打交道也算比较频繁,但是,似乎很少使用document.referrer.我起初以为是兼容性不好,后来测试发现ie7都支持,那就奇怪了,为何document.referrer用的不多呢? 我想了一下,可能有下面几个原因: