• 地图搜索API接口在移动互联网中的应用
    当我们日常出行时,免不了需要搜索一些地点,比如:餐饮、车站。那么地图搜索可以很好地实现搜索功能。地图搜索包括:关键字搜索:通过文本关键字搜索地点信息,文本可以是结构化地址,例如:浙江省杭州市余杭区文一西路890号;也可以是 POI 名称,例如:首开广场;周边搜索:可设置圆心和半径,搜索圆形区域内的地点信息;多边形区域搜索:可设置首尾连接的几何点组成多边形区域,搜索坐标对应多边形内的地点信息;ID搜索:可通过已知的地点 ID(POI ID)搜索对应地点信息,建议结合输入提示接口使用。输入提示:可根据输入的关键词查询返回建议列表。可接入地图搜索API来实现各种地图搜索功能。下面介绍关键字搜索和周边搜索的使用,其他可参见接口文档关键字搜索请求参数名称类型必须说明keywordsString是地点关键字,只支持一个关键字 ,文本总长度不可超过80字符typesString否指定地点类型,可支持传入多个分类,多个类型用 | 分割regionString否搜索区划,增加指定区域内数据返回权重,如需严格限制返回数据在区域内,请搭配使用cityLimit参数,可输入citycode,adcode,cityname,cityname仅支持城市级别和中文,如“北京市”cityLimitString否指定城市数据返回限制,可选值:true/false,为true时,仅返回region对应区域内数据showFieldsString否返回结果控制,showFields用来筛选返回结果中可选字段。例:“children,indoor,business,navi,photos”,未设置时,只返回基础信息类内字段。pageSizeString否当前分页展示的数据条数,取值1-25,默认为10pageNoString否分页,取值1-100,默认为1返回样例{ "msg": "成功",//返回码对应描述 "code": 200,//返回码,详见返回码说明 "taskNo": "202960247220113090298671",//本次请求号 "charge": true,//计费标志 "data": { "count": "10",//总数 "list": [ { "address": "龙井路1号",//详细地址 "location": "120.121282,30.222719",//经纬度 "id": "B023B13L9M",//唯一标识 "name": "杭州西湖风景名胜区",//名称 "pcode": "330000",//所属省份编码 "adcode": "330106",//所属区域编码 "pname": "浙江省",//所属省份 "cityname": "杭州市",//所属城市 "typecode": "110202",//分类编码 "adname": "西湖区",//所属区县 "citycode": "0571",//所属城市编码 "type": "风景名胜;风景名胜;国家级景点",//所属类型 "business": {//商业信息 "opentime_today": "24小时营业",//今日营业时间 "cost": "0.00",//人均消费,目前仅在餐饮、酒店、景点、影院类返回 "keytag": "5A景区",//标签 "rating": "4.9",//评分,目前仅在餐饮、酒店、景点、影院类返回 "business_area": "西湖",//所属商圈 "alias": "西湖景区",//别名 "tel": "0571-89586930",//联系电话 "tag": "面面,鸽子,东坡肉,龙井虾仁,西湖醋鱼,特色小吃",//特色美食内容 "opentime_week": "00:00-24:00"//营业时间描述 }, "photos": [ { "title": "",//图片介绍 "url": "" //图片的下载链接 } ], "children": [//子地点信息 { "typecode": "150904",//分类编码 "address": "南山路与广福里交叉口北80米",//详细地址 "subtype": "停车场",//所属类型 "name": "杭州西湖风景名胜区停车点",//名称 "location": "120.158045,30.241689",//经纬度 "id": "B0H2158T3K" //唯一标识 } ], "navi": {//导航位置相关信息 "navi_poiid": "H51F022001_476398;4093",//对应的导航引导点坐标,一般为各类出入口,方便结合导航、路线规划等服务使用 "entr_location": "120.153345,30.224729",//入口经纬度坐标 "exit_location": "" //出口经纬度坐标 }, "indoor": {//室内相关信息 "indoor_map": "0",//是否有室内地图标志,1为有,0为没有 "floor": "",//楼层索引,一般会用数字表示,例如8;indoor_map为0时不返回 "truefloor": "" //所在楼层,一般会带有字母,例如F8;indoor_map为0时不返回 } } ] } } 周边搜索请求参数名称类型必须说明keywordsString否地点关键字,只支持一个关键字 ,文本总长度不可超过80字符typesString否指定地点类型,可支持传入多个分类,多个类型用 | 分割,当keywords和types均为空的时候,默认指定types为050000(餐饮服务)、070000(生活服务)、120000(商务住宅)locationString是中心点坐标,圆形区域检索中心点,不支持多个点。经度和纬度用","分割,经度在前,纬度在后,经纬度小数点后不得超过6位radiusString否搜索半径,取值范围:0-50000,大于50000时按默认值,单位:米sortRuleString否排序规则,返回结果的排序规则。按距离排序:distance;综合排序:weight,默认distanceregionString否搜索区划,增加指定区域内数据返回权重,如需严格限制返回数据在区域内,请搭配使用cityLimit参数,可输入行政区划名或对应citycode或adcodecityLimitString否指定城市数据返回限制,可选值:true/false,为true时,仅返回region对应区域内数据showFieldsString否返回结果控制,showFields用来筛选返回结果中可选字段。例:“children,indoor,business,navi,photos”,未设置时,只返回基础信息类内字段。pageSizeString否当前分页展示的数据条数,取值1-25,默认为10pageNoString否分页,取值1-100,默认为1返回样例{ "msg": "成功",//返回码对应描述 "code": 200,//返回码,详见返回码说明 "taskNo": "202960247220113090298671",//本次请求号 "charge": true,//计费标志 "data": { "count": "10",//总数 "list": [ { "address": "龙井路1号",//详细地址 "location": "120.121282,30.222719",//经纬度 "id": "B023B13L9M",//唯一标识 "name": "杭州西湖风景名胜区",//名称 "pcode": "330000",//所属省份编码 "adcode": "330106",//所属区域编码 "pname": "浙江省",//所属省份 "cityname": "杭州市",//所属城市 "typecode": "110202",//分类编码 "adname": "西湖区",//所属区县 "citycode": "0571",//所属城市编码 "type": "风景名胜;风景名胜;国家级景点",//所属类型 "business": {//商业信息 "parking_type": "",//停车场类型 "cost": "0.00",//人均消费,目前仅在餐饮、酒店、景点、影院类返回 "keytag": "5A景区",//标签 "rating": "4.9",//评分,目前仅在餐饮、酒店、景点、影院类返回 "business_area": "西湖",//所属商圈 "alias": "西湖景区",//别名 "tel": "0571-89586930",//联系电话 "tag": "面面,鸽子,东坡肉,龙井虾仁,西湖醋鱼,特色小吃"//特色美食内容 }, "photos": [ { "title": "",//图片介绍 "url": "" //图片的下载链接 } ], "children": [//子地点信息 { "typecode": "150904",//分类编码 "address": "南山路与广福里交叉口北80米",//详细地址 "subtype": "停车场",//所属类型 "name": "杭州西湖风景名胜区停车点",//名称 "location": "120.158045,30.241689",//经纬度 "id": "B0H2158T3K" //唯一标识 } ], "navi": {//导航位置相关信息 "navi_poiid": "H51F022001_476398;4093",//对应的导航引导点坐标,一般为各类出入口,方便结合导航、路线规划等服务使用 "entr_location": "120.153345,30.224729",//入口经纬度坐标 "exit_location": "" //出口经纬度坐标 }, "indoor": {//室内相关信息 "indoor_map": "0",//是否有室内地图标志,1为有,0为没有 "floor": "",//楼层索引,一般会用数字表示,例如8;indoor_map为0时不返回 "truefloor": "" //所在楼层,一般会带有字母,例如F8;indoor_map为0时不返回 } } ] } }
  • [技术干货] 快递物流推送-快递订阅API接口的运用
    之前笔者介绍了快递查询API接口,主要是需要输入快递单号主动查询,无论物流状态有无变化,都需要主动查询,有可能多次查询的结果是没有变化的。这种方式有一定的不足:实时性不高,需要每次查询方能知道最新状态。通常按次计费,无论物流状态有无变化,只要发起查询就计费,增加了查询成本。有没有实时性更高的,当物流状态发生变化时,主动通知我的API接口呢?答案是有的,即“快递订阅推送API接口”。与主动查询相比,它有以下优点:提交一次单号,无需频繁手动查询快递状态,提高了获取物流信息的效率和便捷性。减少查询成本(按单计费),提升系统效率不再需要反复请求接口获取最新状态。与快递查询接口类似,快递订阅推送API,同样支持1500+快递公司,与官网同步数据更新。下面来介绍快递订阅推送API接口的使用快递订阅主要分两步:先调用订阅接口,提交单号,发起订阅订阅成功后,当物流状态发生变动时,由接口提供者将当前物流状态推送给使用者详细参阅这里订阅说明请求参数名称类型必须说明expressCodeString否快递公司编号numberString是运单编号mobileString否顺丰速运、中通、跨越速运需要传入收/寄件人手机号或后四位手机号callBackUrlString是物流轨迹推送地址,以https/http协议开头,长度不能大于200推送说明当物流状态发生变动时,接口提供者将当前物流状态数据推送至接入者提供地址为callBackUrl的接口数据结构{ "expressCode":"EMS", // 快递公司编号 详见:快递公司编码对照表 "number":"9796578035309",// 运单编号 "logisticsStatus":"SIGN", // 当前最新物流状态 详见:物流状态编码对照表 "logisticsStatusDesc":"已签收", // 当前最新物流状态描述 "details":[ // 完整的物流轨迹 { "time":1632123146000, // 物流变更时间 "logisticsStatus":"ACCEPT", // 物流状态 详见:物流状态编码对照表 "subLogisticsStatus":"ACCEPT", // 物流子状态 详见:物流状态编码对照表 "desc":"", //物流路由信息描述内容 "areaCode":"CN330100000000", // 路由节点所在地区行政编码 "areaName":"浙江省,杭州市" // 路由节路由节点所在地区 }, { "time":1632140994000, "logisticsStatus":"TRANSPORT", "subLogisticsStatus":"TRANSPORT", "desc":"离开【杭州电商仓配揽投部】,下一站【杭州萧山区东片集散中心】", "areaCode":"CN330100000000", "areaName":"浙江省,杭州市" }, ... ] } 请求格式application/json返回接收结果使用者需要返回接收处理结果返回给接口提供者如果是接收失败,接口提供者会再次推送,最多推送3次//接收成功 { "success":true } // 接收失败 { "success":false, "msg": "接收失败" } 接收示例(java)@PostMapping("callbackUrl") public Map<String,Object> receive(@RequestBody String data, HttpServletRequest request) { log.info("接收到快递物流推送数据: {}", data); ... // 处理自己的业务逻辑 Map<String, Object> result = new HashMap() if (处理成功) { result.put("success",true); } else { result.put("success",false); result.put("msg","接收失败, xxx"); } return result; }
  • 地理编码-逆地理编码-经纬度解析-逆经纬度解析API接口的运用
    移动互联网发展到今天,地图应用已非常广泛,比如:实时定位:打开地图App,它会自动定位你的坐标,并显示出具体地址信息。车辆/资产追踪:监控系统收到一个GPS坐标,需要将其转换为“车辆正在京港澳高速保定段”这样的可读信息,方便管理员理解。地图搜索与导航:用户在导航App中输入目的地地址,App将其转换为坐标后才能进行路径规划。物流与配送:将收件人的地址转换为坐标,用于优化配送路线和跟踪。位置服务注册:为商家或服务地点在线上地图进行标注。照片地理标记:用手机拍摄的照片包含了GPS坐标,相册或社交软件可以通过逆地理编码自动为照片添加地点标签要实现以上功能,采用地理编码、逆地理编码就是最好的解决方法:地理编码,又称经纬度解析,是指将人类可读的地址信息转换为地理坐标(经纬度)逆地理编码,又称经纬度解析,是地理编码的逆向过程,是指将地理坐标(经纬度)转换为人类可读的地址描述的过程地图基于坐标系,目前主流的坐标系有:GCJ02:火星坐标系,国内使用,比如:腾讯、高德WGS84 :国际通用坐标系,比如:手机GPS设备、GoogleBD09:百度坐标系对于开发者,不需要自己建立庞大的地理数据库,而是调用成熟的API服务本文介绍基于火星坐标系的高德地图和百度坐标系的百度地图高德地图地理编码请求参数名称类型必须说明addressString是规则遵循:国家、省份、城市、区县、城镇、乡村、街道、门牌号码、屋邨、大厦,如:北京市朝阳区阜通东大街6号。cityString否outputString否可选输入内容包括:JSON,XML。设置 JSON 返回结果数据将会以JSON结构构成;如果设置 XML 返回结果数据将以 XML 结构构成。callbackString否callback 值是用户定义的函数名称,此参数只在 output 参数设置为 JSON 时有效。详细参阅这里返回样例{ "msg": "成功", "success": true, "code": 200, "taskNo": "74848319667949359984", "charge": true, "data": { "count": 1,//返回结果数目 "geocodes": [//地理编码信息列表 { "country": "中国",//国家 "formatted_address": "浙江省杭州市萧山区美哉美城",//格式化的地址 "province": "浙江省",//地址所在的省份名 "city": "杭州市",//地址所在的市区名称 "citycode": "0571",//城市编码 "district": "萧山区",//地址所在的区 "street": "街道",//街道 "number": "门牌",//门牌 "adcode": "330109",//区域编码 "location": "120.256544,30.224111",//经度,纬度 "level": "兴趣点",//匹配级别 } ] } 逆地理编码请求参数名称类型必须说明locationString是传入内容规则:经度在前,纬度在后,经纬度间以“,”分割,经纬度小数点后不要超过 6 位。poitypeString否支持传入POI TYPECODE及名称;支持传入多个POI类型,多值间用"radiusString否搜索半径。radius取值范围在0~3000,默认是1000。单位:米extensionsString否返回结果控制。extensions 参数默认取值是 base,也就是返回基本地址信息; extensions 参数取值为 all 时会返回基本地址信息、附近 POI 内容、道路信息以及道路交叉口信息。roadlevelString否道路等级。以下内容需要 extensions 参数为 all 时才生效。 可选值:0,1 当roadlevel=0时,显示所有道路 当roadlevel=1时,过滤非主干道路,仅输出主干道路数据outputString否返回数据格式类型。可选输入内容包括:JSON,XML。设置 JSON 返回结果数据将会以JSON结构构成;如果设置 XML 返回结果数据将以 XML 结构构成。callbackString否回调函数。callback 值是用户定义的函数名称,此参数只在 output 参数设置为 JSON 时有效homeorcorpString否是否优化POI返回顺序。以下内容需要 extensions 参数为 all 时才生效。 homeorcorp 参数的设置可以影响召回 POI 内容的排序策略,目前提供三个可选参数: 0:不对召回的排序策略进行干扰。 1:综合大数据分析将居家相关的 POI 内容优先返回,即优化返回结果中 pois 字段的poi顺序。 2:综合大数据分析将公司相关的 POI 内容优先返回,即优化返回结果中 pois 字段的poi顺序。详细参阅这里返回样例{ "msg": "成功", "success": true, "code": 200, "taskNo": "25247068960117401139", "charge": true, "data": { "regeocodes": [{ //逆地理编码列表 "formatted_address": "浙江省杭州市萧山区盈丰街道顺发·美哉美城",//坐标地址 "addressComponent": { //地址元素列表 "country": "中国",//国家 "province": "浙江省",//坐标点所在省名称 "citycode": "0571",//城市编码 "city": "杭州市",//坐标点所在城市名称 "adcode": "330109",//行政区编码 "towncode": "330109015000",//乡镇街道编码 "district": "萧山区",//坐标点所在区 "township": "盈丰街道",//坐标点所在乡镇/街道 "seaArea": "所属海域信息",//所属海域信息 "neighborhood": { //社区信息列表 "name": [],//社区名称 "type": []//POI类型 }, "building": { //楼信息列表 "name": [],//建筑名称 "type": []//类型 }, "streetNumber": { //门牌信息列表 "number": "281号",//门牌号 "distance": "52.8425",//门牌地址到请求坐标的距离 "street": "民和路",//街道名称 "location": "120.257076,30.224231",//坐标点 经度,纬度 "direction": "东"//方向 }, "businessAreas": [//经纬度所属商圈列表 { "businessArea":"",//商圈信息 "name": "宁围",//商圈名称 "location": "120.273765,30.225767",//商圈中心点经纬度 经度,纬度 "id": "330109"//商圈所在区域的adcode } ] }, "roads": [//道路信息列表 请求参数 extensions 为 all 时返回 { "id": "",//道路id "name": "",//道路名称 "distance": "",//道路到请求坐标的距离 米 "direction": "",//方位 "location": ""//坐标点 经度,纬度 } ], "roadinters": [//道路交叉口列表 请求参数 extensions 为 all 时返回 { "distance": "",//交叉路口到请求坐标的距离 米 "direction": "",//方位 "location": "",//路口经纬度 经度,纬度 "first_id": "",//第一条道路名称 "first_name": "",//第二条道路id "second_id": "",//第二条道路名称 "second_name": ""//第二条道路id } ], "pois":[//poi信息列表 { "id": "",//poi的id "name": "",//poi点名称 "type": "",//poi类型 "tel": "",//电话 "distance": "",//该POI的中心点到请求坐标的距离 米 "direction": "",//方向 "address": "",//poi地址信息 "location": "",//坐标点 经度,纬度 "businessarea": ""//poi所在商圈名称 } ], "aois":[//aoi信息列表 { "id": "",//aoi的id "name": "",//aoi点名称 "adcode": "",//所属 aoi 所在区域编码 "location": "",//所属 aoi 中心点坐标 经度,纬度 "area": "",//所属aoi点面积 "distance": ""//输入经纬度是否在aoi面之中 } ] }] } } 百度地图地理编码请求参数名称类型必须说明addressString是待解析的地址。最多支持84个字节。可以输入两种样式的值,分别是:1、标准的结构化地址信息,北京市海淀区上地十街十号【推荐,地址结构越完整,解析精度越高】2、支持“路与路交叉口”描述方式,如北一环路和阜阳路的交叉路口第二种方式并不总是有返回结果,只有当地址库中存在该地址描述时才有返回。cityString否地址所在的城市名。用于指定上述地址所在的城市,当多个城市都有上述地址时,该参数起到过滤作用,但不限制坐标召回城市。retCoordtypeString否添加后返回国测局经纬度坐标或百度米制坐标。示例:gcj02(国测局坐标,仅限中国)、bd09mc(百度墨卡托坐标)。默认bd09ll。outputString否输出格式为json或者xml,默认jsoncallbackString否将json格式的返回值通过callback函数返回以实现jsonp功能详细参阅这里返回样例{ "charge": true,//计费标志 "code": 200,//返回码,详见返回码说明 "msg": "成功",//返回码对应描述 "taskNo": "340833941206534747872156",//本次请求号 "data": { "confidence": 75,//描述打点绝对精度(即坐标点的误差范围)。confidence=100,解析误差绝对精度小于20m;confidence≥90,解析误差绝对精度小于50m;confidence≥80,解析误差绝对精度小于100m;confidence≥75,解析误差绝对精度小于200m;confidence≥70,解析误差绝对精度小于300m;confidence≥60,解析误差绝对精度小于500m;confidence≥50,解析误差绝对精度小于1000m;confidence≥40,解析误差绝对精度小于2000m;confidence≥30,解析误差绝对精度小于5000m;confidence≥25,解析误差绝对精度小于8000m;confidence≥20,解析误差绝对精度小于10000m; "analys_level": "POI",//可以解析地址文本中的最小地址结构,例如问题地址:北京市海淀区北京路百度大厦,analys_level:"POI",能精确理解的地址类型包含: 省 市 区县 乡镇 道路 门址 POI 。 "level": "商务大厦",//可以打点到地址文本中的真实地址结构,例如问题地址:北京市海淀区北京路百度大厦,level:"道路",能精确理解的地址类型,包含:UNKNOWN、国家、省、城市、区县、乡镇、村庄、道路、地产小区、商务大厦、政府机构、交叉路口、商圈、生活服务、休闲娱乐、餐饮、宾馆、购物、金融、教育、医疗 、工业园区 、旅游景点 、汽车服务、火车站、长途汽车站、桥 、停车场/停车区、港口/码头、收费区/收费站、飞机场 、机场 、收费处/收费站 、加油站、绿地、门址 "location": { "lng": 120.00135828539837,//经度值 "lat": 30.287874445189647 //纬度值 }, "precise": 1,//位置的附加信息,是否精确查找。1为精确查找,即准确打点;0为不精确,即模糊打点。 "comprehension": 35 //描述地址理解程度。分值范围0-100,分值越大,服务对地址理解程度越高(建议以该字段作为解析结果判断标准),当comprehension值为以下值时,对应的准确率如下:comprehension=100,解析误差100m内概率为91%,误差500m内概率为96%;comprehension≥90,解析误差100m内概率为89%,误差500m内概率为96%;comprehension≥80,解析误差100m内概率为88%,误差500m内概率为95%;comprehension≥70,解析误差100m内概率为84%,误差500m内概率为93%;comprehension≥60,解析误差100m内概率为81%,误差500m内概率为91%;comprehension≥50,解析误差100m内概率为79%,误差500m内概率为90%,解析误差:地理编码服务解析地址得到的坐标位置,与地址对应的真实位置间的距离。 } } 逆地理编码输入参数名称类型必须说明locationString是根据经纬度坐标获取地址,格式:纬度,经度。例如:120.067824,31.413068。coordtypeString否坐标的类型,目前支持的坐标类型包括:bd09ll(百度经纬度坐标)、bd09mc(百度米制坐标)、gcj02ll(国测局经纬度坐标,仅限中国)、wgs84( GPS经纬度)。默认bd09ll。retCoordtypeString否添加后返回国测局经纬度坐标或百度米制坐标。示例:gcj02(国测局坐标,仅限中国)、bd09mc(百度墨卡托坐标)。默认bd09ll。extensionsPoiString否extensions_poi=0,不召回pois数据。extensions_poi=1,返回pois数据(默认显示周边1000米内的poi),并返回sematic_description语义化数据。extensionsRoadString否当取值为true时,召回坐标周围最近的3条道路数据。默认false。extensionsTownString否当取值为true时,行政区划返回乡镇级数据(town),仅国内召回乡镇数据。当取值为false时,行政区划不返回乡镇级数据(town)。默认true。radiusString否以下内容需要 extensionsPoi=1时才生效;poi召回半径,允许设置区间为0-1000米,超过1000米按1000米召回。默认1000。callbackString否将json格式的返回值通过callback函数返回以实现jsonp功能。poiTypesString否以下内容需要 extensionsPoi=1时才生效;可以选择poi类型召回不同类型的poi,例如poiTypes=酒店,如想召回多个POI类型数据,可以languageString否指定召回的行政区划语言类型。 召回行政区划语言list(全量支持的语言见示例)。 当language=local时,根据请求中坐标所对应国家的母语类型,自动选择对应语言类型的行政区划召回。目前支持多语言的行政区划区划包含country、province、city、district。包含:el gu en vi ca it iw sv eu ar cs gl id es en-GB ru sr nl pt tr tl lv en-AU lt th ro fil ta fr bg hr bn de hu fa hi pt-BR fi da ja te pt-PT ml ko kn sk zh-CN pl uk sl mr locallanguageAutoString否当用户指定language参数时,是否自动填充行政区划。1填充,0不填充。填充:当服务按某种语言类别召回时,若某一行政区划层级的语言数据未覆盖,则按照“英文→中文→本地语言”类别行政区划数据对该层级行政区划进行填充,保证行政区划数据召回完整性。详细参阅这里返回样例{ "charge": true,//计费标志 "code": 200,//返回码,详见返回码说明 "msg": "成功",//返回码对应描述 "taskNo": "007493807239868764046631",//本次请求号 "data": { "formatted_address": "江苏省无锡市滨湖区",//结构化地址(不包含POI信息)。如果需要标准的结构化地址,比如获取XX路XX号,推荐使用这个参数 "business": "",//坐标所在商圈信息,如 "人民大学,中关村,苏州街"。最多返回3个。 "sematic_description": "梨梨园上草土菜馆客栈西888米",//当前位置结合POI的语义化结果描述。需设置extensionsPoi=1才能返回。 "roads": [ { "name": "",//周边道路名称 "distance": ""//传入的坐标点距离道路的大概距离 } ], "formatted_address_poi": "江苏省无锡市滨湖区马山街道梨梨园上草土菜馆客栈西888米",//结构化地址(包含POI信息)。需设置extensions_poi=1才能返回。如果需要详细的地址描述,推荐使用这个参数。 "location": { "lng": 120.06782399999993,//经度值 "lat": 31.413067895001422 //纬度值 }, "edz": { //所属开发区 "name": "" // }, "poiRegions": [ { "direction_desc": "",//请求中的坐标与所归属区域面的相对位置关系 "name": "",//归属区域面名称 "tag": "",//归属区域面类型 "distance": "",//离坐标点距离 "uid": "",//poi唯一标识 } ], "pois": [ { "zip": "",//邮编 "uid": "60c55c3bd4fbb98c276e98a7",//poi唯一标识 "distance": "888",//离坐标点距离 "poiType": "美食",// "name": "梨梨园上草土菜馆客栈",//poi名称 "tel": "",//电话 "parent_poi": { //poi对应的主点poi(如,海底捞的主点为上地华联,该字段则为上地华联的poi信息。如无,该字段为空),包含子字段和pois基础召回字段相同。 "uid": "",// "distance": "",// "name": "",// "tag": "",// "addr": "",// "point": { "x": 0,// "y": 0 // }, "direction": ""// }, "tag": "美食",//poi类型,如’美食;中餐厅’。tag与poiType字段均为poi类型,建议使用tag字段,信息更详细 "addr": "江苏省无锡市滨湖区马山镇和平村北门环山西路91号",//地址信息 "cp": " ",// "point": { //poi坐标 "x": 120.07520393899887,// "y": 31.410457606202677 // }, "direction": "西"//和当前坐标点的方向 } ], "addressComponent": { //注意,国外行政区划,字段仅代表层级 "city_level": 2,//城市所在级别(仅国外有参考意义。国外行政区划与中国有差异,城市对应的层级不一定为『city』。country、province、city、district、town分别对应0-4级,若city_level=3,则district层级为该国家的city层级) "country": "中国",//国家 "town": "马山街道",//乡镇名,需设置extensions_town=true时才会返回 "distance": "",//区县名 "city": "无锡市",//城市名 "adcode": "320211",//行政区划代码 "country_code_iso": "CHN",//国家英文缩写(三位) "country_code_iso2": "CN",//国家英文缩写(两位) "country_code": 0,//国家编码 "town_code": "320211009",//乡镇id "province": "江苏省",//省名 "street": "",//道路名 "district": "滨湖区",//相对当前坐标点的距离,当有门牌号的时候返回数据 "street_number": "",//道路门牌号 "direction": ""//相对当前坐标点的方向,当有门牌号的时候返回数据 } } }
  • 实时股票查询接口汇总-A股-沪深-报价-排行-成交
    在投资世界里,股票行情的变化是非常频繁的。若要准确抓住投资时机,首要任务是快速、全面的了解股票数据资源,无论是实时交易信息、历史交易记录,还是财务数据、基本面资料,均不可或缺。我们的核心目标,便是从这些海量数据中提炼出有价值的信息,以指引我们的投资决策。如今,无论是个人开发者写个自用看盘小工具,还是机构搭建高频交易系统,都离不开对行情数据的自动化获取。股票行情API 接口希望能为大家助一臂之力。支持范围A股-K线A股-报价A股-排行A股-停牌信息A股-信息拓展沪深-K线沪深-板块成分股排行沪深-板块排行沪深-大盘涨跌数沪深-分时成交沪深-分钟K含均线沪深-股票排行沪深-股票信息接入说明以A股K线为例请求参数名称类型必须说明symbolString是品种代码 如sh000001typeString是k线类型,可选值:1 - 1分钟5 - 5分钟15 - 15分钟30 - 30分钟60 - 60分钟120 - 120分钟240 - 日K1200 - 周K7200 - 月K86400 - 年KpageSizeString否返回条数,默认:10maString否返回ma均线,可选值为:5,10,15,20,25,30,可不传详细参阅这里返回样例{ "code": 200,//返回码,详见返回码说明 "msg": "成功",//返回码对应描述 "taskNo": "649352771175881926901748",//本次请求号 "charge": true,//计费标志 "data": { "list": [ { "volume": "18616401",//当前成交数 "high": "7.050",//当前最高价 "amount": "130814366.1570",//成交量 "low": "7.000",//当前最低价 "day": "2024-07-31 13:30:00",//数据时间 "close": "7.020",//当前收盘价 "open": "7.020",//当前开盘价 "ma_price15": 15.24,//15条均价 "ma_volume15": 1294429 //15条均成交量 } ] } }
  • 快递查询-物流查询-快递物流查询API接口
    目前,电商、货运等行业都需要快递查询API,对运单号的物流轨迹进行跟踪。通过快递查询接口,可以实时查询物流轨迹。支持一千多家快递公司与官网同步数据更新。可以实现将快递查询功能集成到自有的系统中,方便用户实时跟踪物流信息。比如:电商网站,直接在“我的订单”页面内就能看到订单的物流状态。改变订单的状态和交易流程,例如单号变为“已签收”,就能让订单变为可以确认退换货等。物流平台可以自动筛选出“已签收”、“疑难件”等状态的单号,减轻物流跟单人员的压力。评估选择快递公司,根据“已签收”的运单数,可以算出销售人员的业绩,且便于应对货到付款的结算。请求参数名称类型必须说明numberString是运单编号expressCodeString否快递公司编号 例如圆通:YTO。快递公司编号不传时,系统会自动识别快递公司编号,但响应时间会比传递快递编号略长mobileString否顺丰速运、中通、跨越速运需要传入收/寄件人手机号或后四位手机号sortString否物流明细排序,desc:倒序,asc:升序,默认asc详解接入参见如果是需要当物流轨迹发生变化,能实时接收物流轨迹的,也可以用按单订阅成功返回样例{ "code": 200, // 详见code返回码说明 "msg": "成功", // code 对应的描述 "charge": true, // 计费标志 "taskNo": "30853523396532582768", // 本次请求号 "data": { "expressCode": "ZTO", // 快递公司编号 "expressCompanyName": "中通快递", // 快递公司名称 "expressCompanyLogo": "", // 快递公司logo "number": "73171992731469", // 运单编号 "logisticsStatus": "SIGN", // 物流状态,详见:物流状态编码对照表; "logisticsStatusDesc": "已签收", // 物流状态描述 "theLastMessage": "快件已在金华孝顺签收 签收人:本人。如有疑问请电联:15888996643, 投诉电话:0579-82977127, 您的快递已经妥投。风里来雨里去, 只为客官您满意。上有老下有小, 赏个好评好不好?【请在评价快递员处帮忙点亮五颗星星哦~】", // 运单号物流流转当前最新描述 "theLastTime": "2021-11-23 12:24:58", // 运单号物流流转当前最新变更时间 "takeTime": "2天17小时33分", //从揽收到送达所耗时间 "courier": "付村二部傅军", // 快递员 "courierPhone": "15888996643", // 快递员联系方式 "logisticsTraceDetails": [ // 物流明细 { "time":1632123146000, // 物流变更时间 "logisticsStatus":"ACCEPT", // 物流状态 详见:物流状态编码对照表 "subLogisticsStatus":"ACCEPT", // 物流子状态 详见:物流状态编码对照表 "desc":"【杭州电商仓配揽投部】已收寄,揽投员:刘岭,电话:13754324900", //物流路由信息描述内容 "areaCode":"CN330100000000", // 路由节点所在地区行政编码, 未必会返回 "areaName":"浙江省,杭州市" // 路由节路由节点所在地区 }, { "time":1632140994000, "logisticsStatus":"TRANSPORT", "subLogisticsStatus":"TRANSPORT", "desc":"离开【杭州电商仓配揽投部】,下一站【杭州萧山区东片集散中心】", "areaCode":"CN330100000000", "areaName":"浙江省,杭州市" }, ... ] } }
  • 短网址生成-短链接生成-ShortUrl生成-ShortLink生产接口API-永久短网址
    当在互联网上用发送网址(URL)的方式分享内容时,通常会因为URL过长遇到很多限制,比如:短信发送会拆分成多个短信,增加成本;URL可能包含随机字符、参数拼接,用户无法直观判断目标地址,信任度低;有些社区会限制URL的长度,导致无法分享;短网址(Short URL)是指将原始冗长的网址缩短为长度更短的网址,当点击短网址时,可跳转到原始长网址的服务。短网址服务适用场景短信推广:将原始长网址转换短网址后,放到短信中发送,可以短信内容,避免拆分成多个短信,节省成本;社区平台分享:微博、微信、抖音等平台分享式,短网址更易排版,且避免长 URL 被截断;二维码应用:在生成二维码时,如果原始网址过长,可能会导致二维码的复杂度增加,影响扫码成功率。短网址生成接口特色功能短网址域名拦截后可动态替换支持302跳转原始网址和隐藏原始网址两种方式,隐藏原始网址的方式可避免原始网址被拦截请求参数名称类型必须说明targetString是原始地址详细使用参见返回样例{ "code": 200, "msg": "成功",//code对应的描述 "taskNo": "41020892700032664119",//请求号 "charge": true, "data": { "target ":"", //原始链接 "link":"", //短链地址,带https:// "simpleLink":"", //短链地址,不带https:// }
  • [问题求助] 为什么创建不了API分组了
    我需要完成一个触发器创建需要写分组,但点进创建分组没有用,
  • [问题求助] 依赖专享版APIG的serverless应用
    在依赖专享版APIG的serverless应用中,如何控制APIG实例的启停,以避免持续计费?
  • [认证交流] 【华为开发者认证E级云架构学习分享】
    首先,很高兴能参加首批华为云解决方案架构(HCCDE)专业级认证线下培训。该课程属于华为认证的E级别,与之相较的还有HCCDP,本课程不论是涉及到的知识的深度与广度都要比HCCDP强。虽然本人之前也用常用APIG网关、Event事件、队列消息、微服务、容器、以及无服务函数FunctionGrap等,但是通过线下五天跟三位华为老师的学习,以及小组其他成员充分交流,让我深刻意识到自己之前的用法存在的局限性和盲目性。更加明确往后的架构设计该如何更好的进行设计。如果你也对大型架构下如何设计存在些许疑惑,相信我,这门课程可以帮到你。最后再次感谢三位老师的辛勤讲授💐💐💐
  • [技术干货] 华为云CodeArts API 最新语音合成详细教学指南
    活动完成标准请注册华为云账号并完成实名认证,实验过程中请使用Chrome浏览器完成相关操作。华为云账号注册步骤请参考:cid:link_4实名认证操作步骤请参考:cid:link_21 通过CodeArts API设计语音合成接口1.1 进入CodeArts API官网,点击网页版体验并登录cid:link_51.2 创建项目1.2.1 登录后点击页面右上角的“创建项目”按钮1.2.2 在创建项目弹窗中输入项目名称:语音合成,并点击保存1.2.3 提示保存成功,点击API设计页签,进入到API设计页面1.3 设计接口1.3.1 点击页面上的“新建API接口”卡片1.3.2 显示新建标签页1.3.3 输入接口的URL:/tts1.3.4 输入接口名称:语音合成1.3.5 下拉滚动条到请求体区域,将请求的格式修改为:application/json1.3.6 显示请求体的数据结构模板,默认根节点类型为“object”1.3.7 点击根节点最右侧的“+”操作1.3.8 页面上在根节点下新增一条参数(可以通过滚动条左右拖动)1.3.9 将参数名param2修改为text,描述param2修改为待合成的文本1.3.10 下拉页面,看到返回响应区域1.3.11 同样点击根节点最右侧的“+”操作(可以通过滚动条拖动到最右侧),在根节点下显示一条新的参数1.3.12 将参数名param2修改为result,将描述修改为合成结果1.3.13 点击右上角的保存按钮1.3.14 保存成功,设计完成2 通过API Explorer调试语音合成接口,生成5段音频2.1 语音合成(API Explorer部分)链接:cid:link_32.1.1 生成语音格式为wav,采样率:8000,标准女音,语速0,音高0图1.1.1 wav标准女音2.1.2 生成语音格式为wav,采样率:16000,标准男声,语速0,音高0图1..12 wav标准男音2.1.3 生成语音格式为mp3,采样率:8000,标准女音,语速100,音高100图1.1.3 mp3标准女音2.1.4 生成语音格式为mp3,采样率:16000,标准男声,语速100,音高100图1.1.4 mp3标准男声2.1.5 生成语音格式为pcm,采样率:16000,标准男声,语速100,音高100图1.1.5 标准男声3 基于华为云自研CodeArts IDE,实现数据流转换为音频的功能3.1 打开CodeArts IDE ONLINE链接:cid:link_6点击免费体验云开发3.2 实现数据流转换为音频3.2.1 将实验用Demo工程上传到CodeArts IDE OnlineDemo工程下载链接:cid:link_11)打开CodeArts IDE Online后,左上角点击“文件”->“上传文件”:2)上传“CodeArtsProject.zip”,点击“终端”对工程进行解压3)左上角->文件->打开,打开解压后的工程目录3.2.2 在华为云控制台新增访问秘钥,配置AK/SK1)登录华为云控制台:https://console.huaweicloud.com/iam/?agencyId=599e2ee1492f48e9b69a0a682d435fb8&region=cn-north-4&locale=zh-cn#/mine/accessKey选择“我的凭证”->“访问秘钥”->新增访问秘钥注:如果已经有AK/SK秘钥,不需要新增访问秘钥创建秘钥成功后点击“立即下载”,即可获得“credentials.csv”文件,里面可以查看到AK(Access Key Id)和SK(Secret Access Key)2)进入工程,src/main/resources下选择credentials.properties,讲AK/SK配置上3.2.3 将API Explorer上调试成功的流数据文件配置到APIResponse.json中在2.1语音合成章节,我们在API Explorer完成接口的调试cid:link_3最终生成“SIS_RunTts_ResponseBody_xxxxxxxxxxxxx.json”文件,打开json文件,复制响应体内容打开工程,进入src/main/resources中,选择APIResponse.json,将json文件的内容复制到APIResponse.json中。3.2.4 执行“should_return_audio_when_response_json”,生成mps格式音频文件:找到test目录下的测试类SisServiceTest.java,点击找到方法“should_return_audio_when_response_json()”,点击Run Test,最后可以看到目录下生成的音频文件。目录下生成“devkit.mps”文件右击下载,可以获得转换后的音频文件,实验结束
  • [问题求助] API网关,和传统意义上的网关,有啥区别
    API网关,和传统意义上的网关,有啥区别
  • [问题求助] API网关和NAT网关有什么区别?什么是网关
    API网关和NAT网关有什么区别?什么是网关
  • [技术干货] Hibernate笔记分享
    Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的JavaEE架构中取代CMP,完成数据持久化的重任。1.Hibernate是什么,有什么作用和好处?        Hibernate是一个数据库访问框架,用于实现对数据库的增删改查操作。使用Hibernate框架可以简化数据库访问操作,要程序员将更多的经历放在业务层编写上。       原有JDBC操作数据库存在一些问题,主要有以下几个方面:       a)需要编写大量复杂的SQL语句       b)需要设置大量的SQL参数或者将ResultSet取值封装成实体对象       c)当数据库移值时,需要修改部分SQL语句和操作      使用Hibernate框架可以解决以上问题。2.什么是ORM?ORM(Object Relation Mapping)对象关系映射。意思是将程序中的实体对象和关系数据库表中的一行记录进行映射。这样在程序中使用该工具就可以将一个对象写入数据表,或者将数据表记录自动封装成一个对象返回。(这个也是Hibernate实现的原理)3.Hibernate的几个核心接口?    Configuration类:Configuration用于配置并启动Hibernate。SessionFactory接口:一个SessionFactory对应一个数据源,它是个重量级对象,不可随意生成多个实例。它是线程安全的,同一个实例可以被应用中的多个线程共享。Session接口:Session接口是Hibernate应用中使用最广泛的接口了,它是持久化管理器,提供添加、更新、删除、加载、查询对象。Session不是线程安全的,所以应避免多个线程共享同一个Session实例。Session是轻量级对象,它的创建和销毁不需要太多资源,这意味着在应用中可以经常创建和销毁Session对象。Transaction接口:Transaction是Hibernate的数据库事务接口,它对底层的事务接口进行了封装。Query和Criteria接口:这两个是Hibernate的查询接口,用于向数据库查询对象,以及控制执行查询的过程。4.Hibernate的一级缓存?       是session级别的缓存。        a.当查询某个对象时,Hibernate首先去一级缓存中查找,如果存在将缓存中的对象取出返回。如果不存在才去数据库查询。        b.当查询某个对象时,Hibernate会自动将数据库查询出的对象放入一级缓存。(例如session的load和get方法查出的对象)        c.一级缓存默认启用,一般被称为Session级别的缓存。因此一级缓存随着Session对象创建,随着Session对象释放而销毁。        d.每个Session都有自己一个独立的一级缓存空间,不能访问其他Session的缓存空间。       ----------------------一级缓存的好处-------------------------       在使用同一个Session查询同一个对象若干次的时候,只在第一次时查询数据库,后续几次都会从缓存取出。从而减少对数据库的查询次数。       -----------------------**使用建议(重点)**----------------------------为了将一级缓存的优势更好的发挥出来,建议在处理一个请求时,使用一个Session对象处理。可以使用ThreadLocal技术封装Session.    在Hibernate中,可以 <!-- 指定将session与处理线程绑定,实现线程单例 -->       <property name="current_session_context_class">          thread        </property>5.Hibernate的二级缓存?    二级缓存也称为进程级的缓存或SessionFactory级的缓存,二级缓存可以被所有的session共享 ,可以被多个不Session对象访问,二级缓存的生命周期和SessionFactory的生命周期一致,SessionFactory可以管理二级缓存。6.Hibernate中session的get和load方法区别?    相同点:作用相同,都是按照主键条件查询某个对象。    不同点:1).get方法不使用延迟加载机制,load采用延迟加载机制2).如果没有满足条件的记录,get方法返回null,load则抛出异常3).load方法返回的对象是一个动态代理类(Hibernate框架动态生成的,是实体类的子类型)。4).get方法返回的对象类型就是原实体类型注意:a.在程序中,如果使用上述延迟加载操作,需要避免Session对象过早关闭问题。(could not initialize proxy - no Session)b.为避免上述异常,一般采用OpenSessionInView模式。c.可以将Session关闭采用Filter或Interceptor(Struts2推荐)封装。7.线程单例及其使用线程单例:回到服务器中,只要是服务器,每一个浏览器访问服务器时,服务器会为每个浏览器创建一个线程。假设Some就是Session,如果使用这种机制获取Session,当同一个用户浏览器不论怎么调用session都是同一个(只要在相同的线程中)。这种机制就叫做线程单例。线程单例的实现原理就是如上SomeFactory做的。private static ThreadLocal<Session> tl = new ThreadLocal<Session>0;Session session = tl.get0; if (session == null) {       session = factory.openSession();       tl.set(session); }8.HQL和SQL的区别    Hibernate Query Language(Hibernate查询语言)    结构化查询语言(Structured Query Language)简称SQL       HQL语句结构与SQL语句相似, SQL语句是面向数据表和字段进行查询,而HQL是面向映射后的对象和属性进行查询。因此HQL被称为面向对象查询语句。           HQL语句与SQL相似点如下:            a.HQL语句支持select,from,where,order by ,group by,having子句            b.HQL语句支持分组函数max,min,avg,sum,count            c.HQL语句支持运算符和表达式            d.HQL语句支持>,>=,<,<=,in,not in,like,between... and...,                  <>,!=等查询条件,也支持and,or关键字            e.HQL语句支持inner join,left outer join,full join 等连接           HQL语句与SQL不同点如下:(下面内容为重点)             a.HQL区分大小写(大小写敏感),除关键字之外             b.HQL语句使用的类名和属性名(将SQL表名替换成类名,字段名替换成属性名)             c.HQL不支持select *写法,但支持select count(*)             d.HQL语句不支持表连接的on子句,on关联条件可以通过关联映射自动追加9.Hibernate中操作并发处理?(乐观锁和悲观锁)    Hibernate框架可以使用锁的机制来解决操作并发。    a.悲观锁         在数据查询出来时,就给数据加一个锁,锁定。这样其他用户再执行删、改操作时不允许。当占用着事务结束,锁会自动解除。          Hibernate采用的是数据库锁机制实现悲观锁控制。        缺点:将并发用户操作同步开,一个一个处理。当一个用户处理时间比较长时,效率会比较低。      b.乐观锁         允许同时更新提交,但是最快的会成功,慢的失败。         在记录中追加一个字段值,用该字段值当做版本。当最先提交者提交后,会自动将版本字段值提升,这样其他用户提交,会发现版本低于数据库记录目前版本,因此抛出异常提示失败。    特点:允许用户同时处理,但只能有一个成功,其他失败,以异常方式提示。
  • [问题求助] 【ulab环境】脚本编辑页面右上角搜索功能无法使用,有报错信息
    迁移后新环境点击这个搜索框报错。点击更新搜索索引同样报这个错误
  • [问题求助] 智慧园区20.3创建卡口选择摄像头是通过设施实例属性功能类型funcType查询摄像头,还是ivs的智能分析类型筛选摄像头
    智慧园区20.3  问题 1.编辑摄像头实例属性功能类型funcType是否可以同步到IVS 2.创建卡口选择摄像头是通过设施实例属性功能类型funcType查询摄像头,还是ivs的智能分析类型筛选摄像头而且必须是创建了智能分析任务的摄像头
总条数:63 到第
上滑加载中