/// <summary> /// 转换坐标获取转换后结果 /// </summary> /// <param name="queryParam"></param> /// <returns>转换的坐标结果</returns> public CoordinateResult ConvertVal(CoordinateParam queryParam) { queryParam.output = "JSON"; string jsonResult = ConvertOriginalVal(queryParam); if (!string.IsNullOrWhiteSpace(jsonResult)) { jsonResult = jsonResult.Replace("[]", "\"\""); } CoordinateResult queryResult = JsonConvert.DeserializeObject <CoordinateResult>(jsonResult); return(queryResult); }
public CoordinateResult GetCoordinateWithGeocode(string address, ServiceResultTypes resultType = ServiceResultTypes.street_address) { var result = new CoordinateResult() { Coordinate = new Coordinate(), Status = ServiceResultStatus.NOT_DEFINED }; if (!CheckAddress(address) || !CheckFilterAddress(address)) { result.Status = ServiceResultStatus.INVALID_REQUEST; return(result); } return(GetGeocodeApiResult(address, resultType)); }
private CoordinateResult HandleResponseGeocode(WebResponse response, ServiceResultTypes resultType) { var result = new CoordinateResult() { Coordinate = new Coordinate(), Status = ServiceResultStatus.NOT_DEFINED }; StreamReader sr = new StreamReader(response.GetResponseStream()); var apiResult = JsonConvert.DeserializeObject <ApiGeocodeResult>(sr.ReadToEnd()); result.Status = SetResultStatus(apiResult.status); if (result.Status == ServiceResultStatus.OK) { if (apiResult.results.Count() == 1) { var finalResult = apiResult.results.FirstOrDefault(); if (finalResult == null) { result.Status = ServiceResultStatus.ZERO_RESULTS; return(result); } if (finalResult.partial_match == false && finalResult.types.Contains(resultType.ToString())) { result.Coordinate.Latitudine = finalResult.geometry.location.lat; result.Coordinate.Longitudine = finalResult.geometry.location.lng; return(result); } } } result.Status = ServiceResultStatus.ZERO_RESULTS; return(result); }