- 积分
- 3638
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2014-10-21
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
;因为数字转字符串的操作太多了,写个字母少的函数代替:
;n2s=number to string
function n2s,x
return,strtrim(string(x),2);数字转字符串后去除空格
end
;使用高德地图API计算距离
pro amap_distance
;高德地图web开发K码:
key='xxxxxxxxxxxxxxxxx';不便透露,可免费申请
;准备2个点:
lon1=116.481028
lat1=40.005717
lon2=lon1+0.001
lat2=lat1
;求距离的接口url:
url='https://restapi.amap.com/v3/distance?'+$
'origins='+n2s(lon1)+','+n2s(lat1)+$
'&destination='+n2s(lon2)+','+n2s(lat2)+$
'&output=json&key='+key+'&type=0'
;output=json表示按json格式返回
;type=0表示求的是直线距离,不是驾车或步行距离
;将网页数据按json格式下载到本地
netObject = IDLnetURL()
jsonfile='C:\geocode.json';C盘是一定存在的,就放这吧,用完删掉
!null = netObject.Get(URL=url,FILENAME=jsonfile)
netObject = 0
;按字符串读取该json文件
openr,lun,jsonfile,/get_lun
xx=''
readf,lun,xx
free_lun,lun
FILE_DELETE,JSONFILE;删除json
;json字符串转结构体(/TOSTRUCT表示转为结构体)
json=JSON_PARSE(xx,/TOSTRUCT)
print,'距离=',n2s(long(json.results[0].distance)),'m'
end
输出:距离=85m
|
|