using System.Text; /* * Copyright 2008 ZXing authors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ namespace com.google.zxing.client.result { /// /// @author Sean Owen /// public sealed class GeoParsedResult : ParsedResult { private readonly double latitude; private readonly double longitude; private readonly double altitude; private readonly string query; internal GeoParsedResult(double latitude, double longitude, double altitude, string query) : base(ParsedResultType.GEO) { this.latitude = latitude; this.longitude = longitude; this.altitude = altitude; this.query = query; } public string GeoURI { get { StringBuilder result = new StringBuilder(); result.Append("geo:"); result.Append(latitude); result.Append(','); result.Append(longitude); if (altitude > 0) { result.Append(','); result.Append(altitude); } if (query != null) { result.Append('?'); result.Append(query); } return result.ToString(); } } /// latitude in degrees public double Latitude { get { return latitude; } } /// longitude in degrees public double Longitude { get { return longitude; } } /// altitude in meters. If not specified, in the geo URI, returns 0.0 public double Altitude { get { return altitude; } } /// query string associated with geo URI or null if none exists public string Query { get { return query; } } public override string DisplayResult { get { StringBuilder result = new StringBuilder(20); result.Append(latitude); result.Append(", "); result.Append(longitude); if (altitude > 0.0) { result.Append(", "); result.Append(altitude); result.Append('m'); } if (query != null) { result.Append(" ("); result.Append(query); result.Append(')'); } return result.ToString(); } } } }