从第三方地图服务商中获取数据,以及将数据展现在这些地图上,
数据分析以及可视化法,
第一:获取数据
第二:展现数据
第三:提供LBS服务--位置服务(LBS,Location Based Services)又称定位服务
<1> 地名地址空间化 通过搜索关键字,返回相关POI信息,包括坐标 经纬度
<2> 取行业所在的空间位置信息
基本概念:
常用概念:
结构化地址
location
POI: POI是“Point of Interest”的缩写,可以翻译成“信息点”,
每个POI包含四方面信息,名称、类别、经度纬度、附近的酒店饭店商铺等信息
也称作导航地图信息。
电子地图上一般用气泡图标来表示POI,POI名称有汉字和拼音两种版本
AOI (area of interest),即信息面,也叫兴趣面。指的是地图数据中的区域状的地理实体
radius 查询POI的半径范围 取值范围:0~3000,单位:米
LBS中的数据所涉及部分
涉及的数据主要包括基础地理信息数据<地理信息数据库>、
系统管理数据
兴趣点数据
各家地图服务商使用的坐标并不相同。目前主要有如下三种坐标系:
大地坐标(WGS84坐标系):国际上通用的坐标系。设备一般包含GPS芯片或者北斗芯片获取的经纬度为WGS84地理坐标系,
谷歌地图采用的是WGS84地理坐标系(中国范围除外)。
火星坐标(GCJ02坐标系):是由中国国家测绘局制订的地理信息系统的坐标系统。由WGS84坐标系经加密后的坐标系。
高德地图 、谷歌中国地图和搜搜中国地图采用的是GCJ02地理坐标系。
百度坐标(BD09坐标系):GCJ02坐标系经加密后的坐标系。
基本的代码--基于高德地图
--Python中的库以及高德地图中的ak-需要进行申请
# -*- coding:utf-8 -*-
import requests
def getcode(search, wantcity, wantpage=1):
# 允许你使用 params 关键字参数,以一个字典来提供这些参数search
# ak类型 - Web服务
ak = '*********************'
# (keywords和types两者至少必选其一)
# offset 每页记录数据
parameters = {'key': ak, 'keywords': search, 'offset': 20, 'city': wantcity, 'page': wantpage}
# API类型 -- 搜索API --查询POI信息
base = 'http://restapi.amap.com/v3/place/text'
# http://restapi.amap.com/v3/place/around?parameters 周边搜索API服务地址
responese = requests.get(base, params=parameters)
#print responese.url
# 访问请求响应体
print(responese.text)
# 检测响应状态码:
#print('状态码是 : ' + str(responese.status_code))
answer = responese.json()
# geocodes 地理编码信息列表 结果对象列表,包括下述字段 搜索POI信息列表
#print(answer)
return(answer) #if not answer['status'] else None
出现的问题
geocodes 地理编码信息列表 结果对象列表,包括下述字段 location 坐标点 经度,纬度
citycode 城市编码
{"info":"USERKEY_PLAT_NOMATCH","infocode":"","status":"0","sec_code_debug":"********",
"key":"**********","sec_code":"********"}
确认方式:查看状态码以及返回的信息
解决
出现问题: key不匹配 ,请求中使用的key与绑定平台不符,例如:开发者申请的是js api的key,却用来调web服务接口
##JSON返回的信息如下
{u'info': u'USERKEY_PLAT_NOMATCH', u'status': u'0', u'infocode': u'',……}
解决方式:新申请了对应服务的key,换上即可-
总结:- 了解每个参数的作用并进行修改以获取需要的效果
参考:
高德Web服务API简介 http://lbs.amap.com/api/webservice/summary/
高德地图 地理/逆地理编码 http://lbs.amap.com/api/webservice/guide/api/georegeo
高德地图api实现地址和经纬度的转换(python) http://www.cnblogs.com/xautxuqiang/p/6241561.html
Python计算地图上两点经纬度间的距离 http://blog.csdn.net/vernice/article/details/46581361
Python和高德开放平台——地名地址空间化及采集POI信息 https://baijiahao.baidu.com/s?id=1564102482149360&wfr=spider&for=pc
Python方法获取百度地图数据示例源码 http://www.iplaypy.com/code/scripts-shell/ss2298.html