/// <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);
        }
Example #2
0
        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));
        }
Example #3
0
        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);
        }