高德地图坐标-地址关系
格式化地址
formattedAddress的值
规则:地址信息=基本行政区信息+具体信息;基本行政信息=省+市+区+乡镇
说明:导入节点位置信息时,根据GSP坐标调用高德API,将省(province)、市(city),citycode、区(district)、adcode、乡镇(township)、formattedAddress信息存入节点地理信息表单独的列中。
Geocode 对象
属性 | 类型 | 说明 |
---|---|---|
addressComponent |
AddressComponent |
地址组成元素 |
formattedAddress |
String |
格式化地址规则:地址信息=基本行政区信息+具体信息;基本行政信息=省+市+区+乡镇 |
location |
LngLat |
坐标 |
adcode |
String |
区域编码 |
level |
String |
给定地址匹配级别,返回匹配最详细级别如:“北京市海淀区苏州街”匹配级别为“道路”详见匹配级别列表 |
AddressComponent 对象
属性 | 类型 | 说明 |
---|---|---|
province |
String |
所在省(省编码在城市编码表中可查询到) |
city |
String |
所在城市 |
citycode |
String |
所在城市编码 |
district |
String |
所在区 |
adcode |
String |
所在区域编码 |
township |
String |
所在乡镇 |
street |
String |
所在街道 |
streetNumber |
String |
门牌号 |
neighborhood |
String |
所在社区 |
neighborhoodType |
String |
社区类型 |
building |
String |
所在楼/大厦 |
buildingType |
String |
楼类型 |
businessAreas |
Array.< BusinessArea > |
仅逆地理编码时返回,所属商圈信息 |
BusinessArea 对象
id |
String |
商圈id |
---|---|---|
name |
String |
商圈名称 |
location |
String |
商圈中心点经纬度 |
匹配级别列表
级别 | 示例 |
---|---|
国家 | 中国 |
省 | 河北、重庆市 |
市 | 宁波 |
区县 | 上海市黄浦区 |
热点商圈 | 上海市黄浦区老西门 |
乡镇 | 回龙观镇 |
小区 | 陆家浜路1332号南开大厦21层D |
村庄 | 三元村 |
道路 | 苏州街 |
道路交叉口 | 北四环西路辅路/善缘街 |
门牌号 | 上海市黄浦区外马路1588号 |
公交站台、地铁站 | 海淀黄庄站A1西北口 |
兴趣点 | 人民大道221号迪美购物中心 |
未知 | 北京市海淀区北三环西路,联想桥东侧路北,太阳园小区南侧 |
导入节点位置信息
根据导入信息中的GPS信息,调用高德逆地址转换接口,获取各维度的地址信息,单独列入库,以备查询使用。
节点位置聚合查询接口
入参
获取当前地图显示范围:NorthEast坐标:161.06904,64.094478,SouthWest坐标:44.877633,-7.355496
Zoom值:3~18,值越小比例尺越大。
聚合结果
{
"code": 200,
"success": true,
"data": {
"dataType": 2,
"listData": [],
"groupData": [
{
"groupName": "北京市",
"longitude": 116.68903,
"latitude": 39.885437,
"cnt": 9366
}
]
},
"msg": "操作成功"
}
列表结果
{
"code": 200,
"success": true,
"data": {
"dataType": 1,
"listData": [
{
"id": "1178579991789768706",
"createUser": -1,
"createDept": -1,
"createTime": "",
"updateUser": -1,
"updateTime": "",
"status": -1,
"isDeleted": 0,
"devEui": "d896e0003000547b",
"formattedAddress": "北京市通州区漷县镇漷兴四街8",
"country": "中国",
"province": "北京市",
"city": "",
"adcode": "110112",
"district": "通州区",
"township": "漷县镇",
"towncode": "110112106000",
"citycode": "010",
"longitude": 116.796,
"latitude": 39.7695,
"tenantId": "bgctv.com.cn",
"lngW": -1,
"latS": -1,
"lngE": -1,
"latN": -1
}
],
"groupData": []
},
"msg": "操作成功"
}
前端计算流程
1、获取当前地图显示范围坐标区间
2、将范围向四周扩大1/4,获取新的坐标区间作为入参。
3、地图中心点经纬移动在1/4以内时,不刷新数据。(不是最近两次的中心点计算,是最后一次未刷新的中心点和当前中心点计算)
4、当zoom=18,且返回还是聚合结果时,点击聚合图标,在右侧以列表方式展示节点,带分页查询。
后端计算流程
1、计算给定范围内节点个数,如果大于1000个,则返回聚合结果。否则直接返回节点列表。
2、聚合方法规则:
zoom介于[3,5]时,按省聚合
zoom介于[6,7]时,按市聚合
zoom介于[8,9]时,按区聚合
zoom介于[10,12]时,按镇聚合
zoom介于[13,18]时,按格式化地址(村)聚合
说明:聚合结果的GPS信息为聚合原始内容中第一条数据的GPS信息。
节点位置分页查询接口
入参
获取当前地图显示范围:NorthEast坐标:161.06904,64.094478,SouthWest坐标:44.877633,-7.355496
分页信息:page、pagesize
列表结果
同上