谷歌地图api没有给出lat / long的确切地址c#

时间:2017-01-18 11:50:08

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

我尝试使用google map api从地址文本中获取经度和纬度。

这是我尝试过的代码。

首先:

var locationService = new GoogleLocationService();
var point = locationService.GetLatLongFromAddress(business.Address2);

var latitude = point.Latitude;
var longitude = point.Longitude;

第二

IGeocoder geocoder = new GoogleGeocoder() { };
Address[] addresses = geocoder.Geocode(business.Address2).ToArray();
foreach (Address adrs in addresses)
{
    var test = adrs.Coordinates;
} 

第三

public RootObject GetLatLongByAddress(string address)
{
    var root = new RootObject();

    var url =string.Format(
                    "http://maps.googleapis.com/maps/api/geocode/json?address={0}&sensor=true_or_false", address);
    var req = (HttpWebRequest)WebRequest.Create(url);

    var res = (HttpWebResponse)req.GetResponse();

    using (var streamreader = new StreamReader(res.GetResponseStream()))
    {
        var result = streamreader.ReadToEnd();

        if (!string.IsNullOrWhiteSpace(result))
        {
           root = JsonConvert.DeserializeObject<RootObject>(result);
         }
    }
        return root;
 }    

我的地址字符串是&#34; Ground Floor,Nishika Avenue,Swastik Char Rasta,Navrangpura,Narnarayan Complex对面,Ahmadabad&#34;

我已尽力尝试,但无论如何它都没有给我经纬度。

当我删除我的地址字符串的第一部分(即 Navrangpura,对面Narnarayan Complex,Ahmadabad )并尝试时,它会给我lat / long。

但是,当我在Google Map上搜索完整地址时,会显示结果。

为什么会这样?我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

地址&#39;一楼,Nishika Avenue,Swastik Char Rasta,Navrangpura,Narnarayan Complex对面,Ahmadabad&#39;也无法在maps.google.com上找到

enter image description here

API无法找到不存在的内容。您应该通过maps.google.com添加此地点,或者按照

更好地格式化地址字符串

https://developers.google.com/maps/faq#geocoder_queryformat

希望它有所帮助!