/// <summary> /// 围栏搜素 /// </summary> /// <param name="table_id">表id,即表的唯一标识(table_id在表创建后由系统自动生成,可在地点云数据管理台查询得到)</param> /// <param name="key">开发者key</param> /// <param name="secretKey">开发者密钥</param> /// <param name="location">搜索中心点坐标</param> /// <param name="keyword">搜索关键字</param> /// <param name="filter">按字段值筛选,支持设置为可搜索的自定义number型字段及预设可搜索的系统字段(详见数据定义)</param> /// <param name="orderby">排序方式</param> /// <param name="fields">指定返回字段:返回文本数据大小对性能影响较大,建议只获取需要的字段</param> /// <param name="page_size">每页条数:默认10条,最大支持200条</param> /// <param name="page_index">页码,默认第1页</param> /// <param name="output">返回格式:支持json(默认)及jsonp</param> /// <param name="callback">JSONP方式回调函数</param> /// <returns></returns> public static MapResponse <CloudSearchData> SearchContain(string table_id, string key, string secretKey, string location, string keyword = null, string filter = null, string orderby = null, string fields = null, int page_size = 10, int page_index = 1, string output = null, string callback = null) { string query = GetRequestBuilder.Create(secretKey, "/place_cloud/search/contain") .WithKeyValue("key", key) .WithKeyValue("table_id", table_id) .WithKeyValue("location", location) .WithKeyValue("keyword", keyword) .WithKeyValue("filter", filter) .WithKeyValue("orderby", orderby) .WithKeyValue("fields", fields) .WithKeyValue("page_size", page_size.ToString()) .WithKeyValue("page_index", page_index.ToString()) .WithKeyValue("output", output) .WithKeyValue("callback", callback) .BuildQueryString(); string url = host + query; var response = Get <MapResponse <CloudSearchData> >(url, out string body); response.Body = body; return(response); }
/// <summary> /// 获取所有数据li /// </summary> /// <param name="table_id"></param> /// <param name="key"></param> /// <param name="secretKey"></param> /// <param name="fields"></param> /// <param name="orderby"></param> /// <param name="page_size"></param> /// <param name="page_index"></param> /// <param name="output"></param> /// <param name="callback"></param> /// <returns></returns> public static MapResponse <CloudSearchData> Search(string table_id, string key, string secretKey, string fields = null, string orderby = null, int?page_size = 10, int?page_index = null, int?page_next = null, string output = null, string callback = null) { string query = GetRequestBuilder.Create(secretKey, "/place_cloud/data/list") .WithKeyValue("key", key) .WithKeyValue("table_id", table_id) .WithKeyValue("fields", fields) .WithKeyValue("orderby", orderby) .WithKeyValue("page_size", page_size) .WithKeyValue("page_index", page_index) .WithKeyValue("page_next", page_next) .WithKeyValue("output", output) .WithKeyValue("callback", callback) .BuildQueryString(); string url = host + query; var response = Get <MapResponse <CloudSearchData> >(url, out string body); response.Body = body; return(response); }
/// <summary> /// 获取所有省市区列表 /// </summary> /// <param name="key"></param> /// <param name="secretKey"></param> /// <returns></returns> public static AreaResponse <List <List <Area> > > GetAreas(string key, string secretKey) { string query = GetRequestBuilder.Create(secretKey, "/ws/district/v1/list") .WithKeyValue("key", key) .BuildQueryString(); string url = host + query; var response = Get <AreaResponse <List <List <Area> > > >(url, out string body); response.Body = body; return(response); }
/// <summary> /// 地址解析 /// </summary> /// <param name="address">地址(注:地址中请包含城市名称,否则会影响解析效果) address=北京市海淀区彩和坊路海淀西大街74号</param> /// <param name="region">地址所在城市(若地址中包含城市名称侧可不传) region=北京</param> /// <param name="key">开发密钥(Key)</param> /// <param name="secretKey"></param> /// <returns></returns> public static MapResponse <AddressToLocationResponse> AddressToLocation(string address, string region, string key, string secretKey) { string query = GetRequestBuilder.Create(secretKey, "/ws/geocoder/v1") .WithKeyValue("address", address) .WithKeyValue("region", region) .WithKeyValue("key", key) .BuildQueryString(); string url = host + query; var response = Get <MapResponse <AddressToLocationResponse> >(url, out string body); response.Body = body; return(response); }
/// <summary> /// 实现从其它地图供应商坐标系或标准GPS坐标系,批量转换到腾讯地图坐标系。 /// </summary> /// <param name="locations"> /// 预转换的坐标,支持批量转换, /// 格式:纬度前,经度后,纬度和经度之间用",“分隔,每组坐标之间使用”;"分隔; /// 批量支持坐标个数以HTTP GET方法请求上限为准 /// locations=39.12,116.83;30.21,115.43 /// </param> /// <param name="type"> /// 输入的locations的坐标类型 /// 可选值为[1, 6] 之间的整数,每个数字代表的类型说明: /// 1 GPS坐标 /// 2 sogou经纬度 /// 3 baidu经纬度 /// 4 mapbar经纬度 /// 5 [默认] 腾讯、google、高德坐标 /// 6 sogou墨卡托 /// </param> /// <param name="key"></param> /// <param name="secretKey"></param> /// <returns></returns> public static LocationTranslateResponse LocationTranslate(string locations, int type, string key, string secretKey) { string query = GetRequestBuilder.Create(secretKey, "/ws/coord/v1/translate") .WithKeyValue("key", key) .WithKeyValue("locations", locations) .WithKeyValue("type", type.ToString()) .BuildQueryString(); string url = host + query; var response = Get <LocationTranslateResponse>(url, out string body); response.Body = body; return(response); }
/// <summary> /// 查询表结构 /// </summary> /// <param name="table_id"></param> /// <param name="key"></param> /// <param name="secretKey"></param> /// <param name="output"></param> /// <param name="callback"></param> /// <returns></returns> public static MapResponse <TableCollection> QueryStructure(string table_id, string key, string secretKey, string output = "json", string callback = null) { string query = GetRequestBuilder.Create(secretKey, "/place_cloud/table/list") .WithKeyValue("key", key) .WithKeyValue("table_id", table_id) .WithKeyValue("output", output) .WithKeyValue("callback", callback) .BuildQueryString(); string url = host + query; var response = Get <MapResponse <TableCollection> >(url, out string body); response.Body = body; return(response); }
/// <summary> /// 逆地址解析【坐标转地址】 /// </summary> /// <param name="location">经纬度(GCJ02坐标系),格式:location=lat<纬度>,lng<经度> 示例:location = 39.984154,116.307490</param> /// <param name="get_poi">是否返回周边地点(POI)列表,可选值:0 不返回(默认)1 返回</param> /// <param name="poi_options"></param> /// <param name="key"></param> /// <param name="secretKey"></param> /// <returns></returns> public static MapLocationToAddressResponse <LocationToAddress> LocationToAddress(string location, int get_poi, string poi_options, string key, string secretKey) { string query = GetRequestBuilder.Create(secretKey, "/ws/geocoder/v1") .WithKeyValue("location", location) .WithKeyValue("get_poi", get_poi.ToString()) .WithKeyValue("poi_options", poi_options.ToString()) .WithKeyValue("key", key) .BuildQueryString(); string url = host + query; var response = Get <MapLocationToAddressResponse <LocationToAddress> >(url, out string body); response.Body = body; return(response); }
/// <summary> /// IP定位:通过终端设备IP地址获取其当前所在地理位置,精确到市级,常用于显示当地城市天气预报、初始化用户城市等非精确定位场景。 /// </summary> /// <param name="key">开发密钥(Key)</param> /// <param name="ip">IP地址,缺省时会使用请求端的IP</param> /// <param name="secretKey"></param> /// <returns></returns> public static MapResponse <IpLocationResult> IpLocation(string ip, string key, string secretKey) { string query = GetRequestBuilder.Create(secretKey, "/ws/location/v1/ip") .WithKeyValue("key", key) .WithKeyValue("ip", ip) .WithKeyValue("output", "json") .BuildQueryString(); string url = host + query; var response = Get <MapResponse <IpLocationResult> >(url, out string body); response.Body = body; return(response); }
/// <summary> /// 距离矩阵(DistanceMatrix),用于批量计算一组起终点的路面距离(或称导航距离),可应用于网约车派单、多目的地最优路径智能计算等场景中,支持驾车、步行、骑行多种交通方式,满足不同应用需要。 /// </summary> /// <param name="mode">计算方式,取值:driving:驾车 walking:步行 bicycling:自行车</param> /// <param name="from">起点坐标 格式: lat,lng[, heading];lat,lng[, heading] from=39.071510,117.190091 from=39.071510,117.190091,270;39.108951,117.279396,180</param> /// <param name="to">终点坐标 格式: lat,lng;lat,lng…</param> /// <param name="key"></param> /// <param name="secretKey"></param> /// <returns></returns> public static MapResponse <DistanceMatrix> DistanceMatrix(string mode, string from, string to, string key, string secretKey) { string query = GetRequestBuilder.Create(secretKey, "/ws/distance/v1/matrix") .WithKeyValue("key", key) .WithKeyValue("mode", mode) .WithKeyValue("from", from) .WithKeyValue("to", to) .BuildQueryString(); string url = host + query; var response = Get <MapResponse <DistanceMatrix> >(url, out string body); response.Body = body; return(response); }
/// <summary> /// 获取下级行政区划 /// </summary> /// <param name="keyword">搜索关键词:1.支持输入一个文本关键词2.支持多个行政区划代码(adcode),英文逗号分隔</param> /// <param name="get_polygon">返回行政区划轮廓点串(经纬度点串),0 默认,不返回轮廓1 包含海域,3公里抽稀粒度 2 纯陆地行政区划,可通过max_offset设置返回轮廓的抽稀级别</param> /// <param name="max_offset">轮廓点串的抽稀精度(仅对get_polygon=2时支持),单位米,可选值:100 :100米(当缺省id返回省级区划时,将按500米返回,其它级别正常生效) 500 :500米 1000:1000米 3000:3000米</param> /// <param name="key"></param> /// <param name="secretKey"></param> /// <returns></returns> public static AreaResponse <List <List <Area> > > SearchAreas(string keyword, int get_polygon, string max_offset, string key, string secretKey) { string query = GetRequestBuilder.Create(secretKey, "/ws/district/v1/search") .WithKeyValue("key", key) .WithKeyValue("keyword", keyword) .WithKeyValue("get_polygon", get_polygon.ToString()) .WithKeyValue("max_offset", max_offset) .BuildQueryString(); string url = host + query; var response = Get <AreaResponse <List <List <Area> > > >(url, out string body); response.Body = body; return(response); }
/// <summary> /// 地点搜索(search接口) /// </summary> /// <param name="keyword"></param> /// <param name="boundary"></param> /// <param name="filter"></param> /// <param name="orderby">排序,目前仅周边搜索(boundary=nearby)支持按距离由近到远排序,取值:_distance</param> /// <param name="page_size"></param> /// <param name="page_index"></param> /// <param name="key"></param> /// <param name="secretKey"></param> /// <returns></returns> public static SearchResponse Search(string keyword, string boundary, string filter, string orderby, int?page_size, int?page_index, string key, string secretKey) { string query = GetRequestBuilder.Create(secretKey, "/ws/place/v1/search") .WithKeyValue("key", key, true) .WithKeyValue("keyword", keyword) .WithKeyValue("boundary", boundary) .WithKeyValue("filter", filter, true) .WithKeyValue("orderby", orderby) .WithKeyValue("page_size", page_size?.ToString()) .WithKeyValue("page_index", page_index?.ToString()) .BuildQueryString(); string url = host + query; var response = Get <SearchResponse>(url, out string body); response.Body = body; return(response); }
/// <summary> /// 静态图API,是通过构造一个HTTP协议的URL调用,获取一张地图的静态图片,可以通过参数指定地图位置、缩放级别、底图类型、叠加的覆盖物等。 /// </summary> /// <param name="size">地图静态图片大小,宽*高,单位像素。 size=138*187</param> /// <param name="key">开发者密钥</param> /// <param name="center">地图视图中心点,为经纬度坐标。center=39.12,116.54</param> /// <param name="zoom">地图视图的级别设置,取值范围4≤zoom≤18,18级仅在maptype=roadmap时支持 zoom=10</param> /// <param name="bounds"> /// 通过设置一个矩形范围来显示地图 /// 1. 系统会自动计算合适的缩放级别,以便设置的范围完整显示在图中 /// 2. 本参数优先级高于center+zoom的组合参数 /// 3. 参数格式: /// bounds=lat,lng;lat,lng /// 矩形范围西南角坐标 和 东北角坐标,两坐标英文分号 " ; " 分隔, 纬度在前,经度在后,英文逗号" , " 分隔。 bounds=39.933828,116.472588;39.960675,116.497993</param> /// <param name="format">支持png(默认),png8,gif,jpg format=png</param> /// <param name="scale">是否高清,取值2为高清,取值1为普清 scale=2</param> /// <param name="maptype"> /// 底图类型,支持5种底图展示效果: /// 普通路网,roadmap /// 卫星,satellite /// 地形图,landform /// 地形叠加路网,terrain /// 卫星叠加路网,hybrid /// maptype=roadmap ///</param> /// <param name="markers">用于标注图标,详见图标(Markers)</param> /// <param name="labels">用于标注文本,详见文本(labels)</param> /// <param name="path">用于标记一条路径,详见路径(path)</param> /// <param name="secretKey"></param> public static MapResponse <string> GetStaicMap(string size, string key, string center = null, string zoom = null, string bounds = null, string format = null, int scale = 2, string maptype = null, string markers = null, string labels = null, string path = null, string secretKey = null) { string query = GetRequestBuilder.Create(secretKey, "/ws/staticmap/v2") .WithKeyValue("size", size) .WithKeyValue("key", key) .WithKeyValue("center", center) .WithKeyValue("zoom", zoom) .WithKeyValue("bounds", bounds) .WithKeyValue("format", format) .WithKeyValue("scale", scale.ToString()) .WithKeyValue("maptype", maptype) .WithKeyValue("markers", markers) .WithKeyValue("labels", labels) .WithKeyValue("path", path) .BuildQueryString(); string url = host + query; var response = Get <MapResponse <string> >(url, out string body); response.Body = body; return(response); }