1 #!/bin/bash
2 # 经纬度反解析地址区域,调用的是腾讯位置的api
3
4 parse_district(){
5 url="https://apis.map.qq.com/ws/geocoder/v1/?location=$1,$2&key=4XCBZ-BPJ6G-23JQI-I2FZ3-ZSDQ7-E3BVp"
6 #echo ${url}
7 curl ${url} > index.json
8 # 使用正则提取需要的区域信息,实际有需要可以提取省市等接口返回的其他信息
9 grep -E '"district":(.*?),' index.json > district.info
10 res=`cat district.info` # eg: "district": "海淀区",
11 res=${res##*:} # "海淀区",
12 res=${res:0:-1} # "海淀区"
13 echo ${res}
14 }
15
16 # shell函数默认返回值是函数 打印的结果, 如果要使用return,只能是return int型数字
17 a1=`parse_district "$1" "$2"`
18 echo "这是处理返回后的结果: ${a1}"
上述是shell脚本, 比如文件名是: parse_district.sh
执行的话传入函数需要的两个参数, 分别是latitude(纬度),和经度(longitude) eg: shell parse_district.sh 39.984154 116.307490
执行结果: "这是处理返回后的结果: 海淀区"
ps: 上述key需要自己申请获取;