由于做微信公众平台的时候需要根据经纬度获取地址,所以才有这个,本来没什么好写的,可是由于没做过php解析json对象,所以还是吃了点小亏,写下来记录一下

百度地图地址解析

在该例子中需要通过经纬度获取地址

api链接 http://api.map.baidu.com/geocoder/v2/?ak=百度应用&location=经度,纬度&output=json&pois=0;

不需要回调函数

通过该地址返回的json数据如下

{

status: 0,

result: {

location: {

lng: 112.99999999488,

lat: 35.999999889577

},

formatted_address: “山西省长治市长治县东师线”,

business: “”,

addressComponent: {

city: “长治市”,

country: “中国”,

direction: “”,

distance: “”,

district: “长治县”,

province: “山西省”,

street: “东师线”,

street_number: “”,

country_code: 0

},

poiRegions: [ ],

sematic_description: “”,

cityCode: 356

}

}

php解析json对象

我看了阮一峰的一篇文章 http://www.ruanyifeng.com/blog/2011/01/json_in_php.html

由于返回的是json文本,所以首先要将json文本转换为php数据结构,利用json_decode($json),

$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';

var_dump(json_decode($json));

经过上述转换,即可得到如下php对象

object(stdClass)#1 (5) {

["a"] => int(1)

["b"] => int(2)

["c"] => int(3)

["d"] => int(4)

["e"] => int(5)

}

所以获取其中对象的时候,可利用如下方式

$json->{'a'}

附上实现代码function getKm($lat1, $lng1, $lat2, $lng2)

{

if($lat1 == 0 && $lng1 == 0){

if($lat2 == 0 && $lng2 == 0){

return "0";

}else {

$url = "http://api.map.baidu.com/geocoder/v2/?ak=gGboNqlNjflXCNq0A6ewpSLB&location=" . $lat2 . "," . $lng2 . "&output=json&pois=0";

$json = file_get_contents($url);

$json = json_decode($json);

return $json->{'result'}->{'addressComponent'}->{'city'};

}

}else {

$dis = getKmnum($lat1,$lng1,$lat2,$lng2);

return $dis.'km';

}

}

同时附上经纬度计算距离的代码function getKmnum($lat1, $lng1, $lat2, $lng2)

{

$earthRadius = 6367000; //approximate radius of earth in meters

$lat1 = ($lat1 * pi()) / 180;

$lng1 = ($lng1 * pi()) / 180;

$lat2 = ($lat2 * pi()) / 180;

$lng2 = ($lng2 * pi()) / 180;

$calcLongitude = $lng2 - $lng1;

$calcLatitude = $lat2 - $lat1;

$stepOne = pow(sin($calcLatitude / 2), 2) + cos($lat1) * cos($lat2) * pow(sin($calcLongitude / 2), 2);

$stepTwo = 2 * asin(min(1, sqrt($stepOne)));

$calculatedDistance = $earthRadius * $stepTwo;

$dis = ceil(round($calculatedDistance) / 1000);

return $dis;

}

php 百度地图根据经纬度获取地址,使用百度地图api根据经纬度获取位置相关推荐

  1. 腾讯地图api php经纬度转换地址,腾讯地图经纬度转换为百度地图经纬度

    ‍ 利用微信来获取用户当前的详细地址是非常方便的,但是利用微信获取到用户的经纬度转换为具体地址时,老是出现误差很大,因此,决心把腾讯地图经纬度转换城百度地图经纬度,然后再‍利用百度地图api来获取详细 ...

  2. java后端根据经纬度获取地址(高德地图)

    1.申请高德地图key 2.逆地理编码(坐标->地址)-地理X: https://lbs.amap.com/demo/jsapi-v2/example/geocoder/regeocoding ...

  3. 百度地图经纬度转换地址 android,百度地图地址经纬度互转,java代码(v1版本使用)...

    /** * 输入地址返回经纬度坐标 * key lng(经度),lat(纬度) */ public void getGeocoderLatitude(String address){ Buffered ...

  4. 【时间处理】获取官方节假日数据的api接口,获取指定日期的节假日数据

    获取指定日期的节假日信息 1.接口地址:http://api.goseek.cn/Tools/holiday?date=数字日期 2.返回数据:正常工作日对应结果为 0, 法定节假日对应结果为 1, ...

  5. 前端关于获取网络时间的方法 api (直接获取时间戳)

    针对系统时间不正确的时候,又需要得到时间戳 淘宝 http://api.m.taobao.com/rest/api3.do?api=mtop.common.getTimestamp 苏宁 http:/ ...

  6. 百度地图根据坐标获取地址信息

    注意: 此方法如果用于编码,请根据实际个人需要情况而定.请详细参照API 参数注释. 百度api:http://developer.baidu.com/map/index.php?title=weba ...

  7. 百度api:根据经纬度获取地理位置信息

    调用百度api,根据经度和纬度获取地理位置信息,返回Json. C#代码: using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Syste ...

  8. 百度地图根据经纬度获取地址

    2019独角兽企业重金招聘Python工程师标准>>> 百度地图根据经纬度获取地址 查询地址要内部实现MKSearchListener接口 Java代码 public class S ...

  9. 输入地址查询并获取地址的经纬度-百度地图-JS

    demo--百度地图 <!DOCTYPE html> <html> <meta charset="utf-8"> <head th:inc ...

  10. 【百度地图】——百度地图API获取经纬度、地址及周边兴趣点

    在做一个电商项目过程中,需要获取设备地理信息,包括经纬度定位,附近地址等,于是写了一个工具类方便使用. 1.在使用百度地图API使,首先要获取官方授权,在http://lbsyun.baidu.com ...

最新文章

  1. 用ASP.NET上传图片并生成带版权信息的缩略图
  2. 一 Storm 基础
  3. 825. 适龄的朋友
  4. 注册键值的根路径无效_mybatis mapper 接口注册流程源码解析
  5. Ubuntu18.04TLS运行linux版百度网盘客户端的问题
  6. win2008系统漏洞扫描所得的几个漏洞详解
  7. Jikes 研究虚拟机(RVM)一 设计和实现问题
  8. esp8266基本使用 - GET|POST
  9. 万彩脑图大师教程 | 万彩脑图大师快捷键指南
  10. U281819 糟心的语文课
  11. 淘宝-没素质的商家给消费者加入禁购名单
  12. 低信噪比MIMO SC-FDE系统中信道估计的研究与实现
  13. 我司Spark迁移Hive数据到MongoDB生产案例代码
  14. 计算机专业的学生应当如何规划他的专业学习
  15. 小程序上传文件demo
  16. 浅析双绞线中五类线每根线的功能
  17. MIPI CSI-2笔记(2) -- 物理层Physical Layer
  18. kotlin和java和hashmap转换
  19. HDU4343[Interval query]--倍增思想+二分+离散
  20. 计算机视觉学习日记2

热门文章

  1. 在线教育源码可实现的功能
  2. Windows系统安装Redis(详细)
  3. linux中grep命令,Linux下grep命令详解
  4. 只需一步!----解决R语言高清图片输出
  5. 如何选择机器人的电机
  6. 私塾在线java设计模式综合项目实战
  7. Delphi2007的重构功能
  8. 儿童智能手表方案/案列/APP/小程序/网站
  9. RoR scaffold
  10. vlan未能连接服务器,PC单机局域网连接VLAN的方法