谷歌地图搜索响应从服务器发回无效请求

时间:2015-05-02 22:14:42

标签: c# google-maps google-places-api

我有一个简单的c#脚本试图从谷歌地图放置api雷达结果。我为开发者控制台创建了一个密钥(为服务器选项创建了它,而不是控制台),用于google places api。

这是我的https字符串

  

https://maps.googleapis.com/maps/api/place/radarsearch/xml?location=37.778720,-122.441683&radius=8047&key=mykeyfromgoogle

我收到的xml响应消息说

<PlaceSearchResponse>
   <status>INVALID_REQUEST</status>
</PlaceSearchResponse>

以下是调用它的简单c#脚本以及指向.Net小提琴的链接fiddle

class Program
{
    static void Main(string[] args)
    {
        Geocoding.GetCoordinates(null);
    }
}

public class Geocoding
{
    public static GeocoderCoordinates GetCoordinates(string region)
    {
        WebRequest request = WebRequest.Create("https://maps.googleapis.com/maps/api/place/radarsearch/xml?location=37.778720,-122.441683&radius=8047&key=myplaceskey"); //&key=AddYourOwnKeyHere

        using (WebResponse response = request.GetResponse())
        {
            using (Stream stream = response.GetResponseStream())
            {
                XDocument document = XDocument.Load(new StreamReader(stream));

                //XElement longitudeElement = document.Descendants("lng").FirstOrDefault();
                //XElement latitudeElement = document.Descendants("lat").FirstOrDefault();

                //if (longitudeElement != null && latitudeElement != null)
                //{
                //    return new GeocoderCoordinates
                //    {
                //        Longitude = Double.Parse(longitudeElement.Value, CultureInfo.InvariantCulture),
                //        Latitude = Double.Parse(latitudeElement.Value, CultureInfo.InvariantCulture)
                //    };
                //}
            }
        }
        return null;
    }
}

public class GeocoderCoordinates
{
    public double Longitude { get; set; }
    public double Latitude { get; set; }

    public override string ToString()
    {
        return String.Format("{0}, {1}", Latitude, Longitude);
    }
}

1 个答案:

答案 0 :(得分:1)

来自docs 雷达搜索请求必须至少包含关键字,名称或类型之一。

您没有包含任何这些参数。