【发布时间】:2017-01-18 11:50:07
【问题描述】:
我正在尝试使用 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;
}
我的地址字符串是“Ground Floor, Nishika Avenue, Swastik Char Rasta, Navrangpura, Opposite Narnarayan Complex, Ahmadabad”
我已经尝试了所有方法,但无论如何它都没有给我纬度和经度。
当我删除地址字符串的第一部分(即 Navrangpura,Opposite Narnarayan Complex,艾哈迈达巴德)并尝试时,它给了我纬度/经度。
但是当我在Google Map 上搜索完整地址时,它会显示结果。
为什么会这样?我错过了什么吗?
【问题讨论】:
标签: c# google-maps google-maps-api-3