1

通り名、地名、都市名からGPS座標を取得することはできますか? 私の問題は、Lat/Lon で現在の GPS を知っていますが、行きたい通りの名前の GPS Lat/Lon を知らないことです。これに Bing Map サービスを使用するにはどうすればよいですか? よろしくお願いいたします。

4

3 に答える 3

1

追加:- http://dev.virtualearth.net/webservices/v1/geocodeservice/geocodeservice.svc

    public void Obtainresult()
    {
        try
        {
            if (location == null)
                return;

            ReverseGeocodeRequest reverseGeocodeRequest = new ReverseGeocodeRequest();

            // Set the credentials using a valid Bing Maps key
            reverseGeocodeRequest.Credentials = new GeocodeService.Credentials();
            reverseGeocodeRequest.Credentials.ApplicationId = "Your Bing Map Key"


            // Set the point to use to find a matching address
            GeocodeService.Location point1 = new GeocodeService.Location();
            point1.Latitude = location.Latitude;
            point1.Longitude = location.Longitude;

            reverseGeocodeRequest.Location = point1;

            // Make the reverse geocode request
            GeocodeServiceClient geocodeService = new GeocodeServiceClient("BasicHttpBinding_IGeocodeService");
            geocodeService.ReverseGeocodeCompleted += new EventHandler<ReverseGeocodeCompletedEventArgs>(geocodeService_ReverseGeocodeCompleted);
            geocodeService.ReverseGeocodeAsync(reverseGeocodeRequest);
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }


    void geocodeService_ReverseGeocodeCompleted(object sender, ReverseGeocodeCompletedEventArgs e)
    {
        try
        {
            // The result is a GeocodeResponse object
            GeocodeResponse geocodeResponse = e.Result;

            if (geocodeResponse.Results != null)
            {
                var yourresult  = geocodeResponse.Results;
            }

        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

問題がある場合はお知らせください:)

乾杯 :)

于 2012-06-01T05:37:38.770 に答える
0
using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
using System.Net;
using System.Web.UI; 


namespace GoogleGeocoder
{
    public interface ISpatialCoordinate
    {
        decimal Latitude {get; set; } 
        decimal Longitude {get; set; } 
    }

    /// <summary>
    /// Coordiate structure. Holds Latitude and Longitude.
    /// </summary>
    public struct Coordinate : ISpatialCoordinate
    {
        private decimal _latitude; 
        private decimal _longitude;

        public Coordinate(decimal latitude, decimal longitude)
        {
            _latitude = latitude;
            _longitude = longitude; 
        }

        #region ISpatialCoordinate Members

        public decimal  Latitude
        {
            get 
            { 
                return _latitude; 
            }
            set 
            { 
                this._latitude = value; 
            }
        }

        public decimal  Longitude
        {
            get 
            { 
                return _longitude; 
            }
            set 
            { 
                this._longitude = value;
            }
        }

        #endregion
    }

    public class Geocode
    {
        private const string _googleUri = "http://maps.google.com/maps/geo?q=";
        private const string _googleKey = "yourkey"; // Get your key from:  http://www.google.com/apis/maps/signup.html
        private const string _outputType = "csv"; // Available options: csv, xml, kml, json

        private static Uri GetGeocodeUri(string address)
        {
            address = HttpUtility.UrlEncode(address);
            return new Uri(String.Format("{0}{1}&output={2}&key={3}", _googleUri, address, _outputType, _googleKey));
        }

        /// <summary>
        /// Gets a Coordinate from a address.
        /// </summary>
        /// <param name="address">An address.
        ///     <remarks>
        ///         <example>1600 Amphitheatre Parkway Mountain View, CA  94043</example>
        ///     </remarks>
        /// </param>
        /// <returns>A spatial coordinate that contains the latitude and longitude of the address.</returns>
        public static Coordinate GetCoordinates(string address)
        {
            WebClient client = new WebClient();
            Uri uri = GetGeocodeUri(address);


            /*  The first number is the status code, 
             * the second is the accuracy, 
             * the third is the latitude, 
             * the fourth one is the longitude.
             */
            string[] geocodeInfo = client.DownloadString(uri).Split(',');

            return new Coordinate(Convert.ToDecimal(geocodeInfo[2]), Convert.ToDecimal(geocodeInfo[3]));
        }

    }
}
于 2012-06-21T09:41:50.913 に答える
0

ここに Yahoo API を使用したサンプルがあります: http://www.devfish.net/fullblogitemview.aspx?blogid=826

あなたが使用できるもののように見えるかもしれません。

于 2012-06-01T09:15:55.180 に答える