背景:App需要点击一个点选取一个位置,现在需要增加一个模糊查询位置的功能,底图是osm,没有使用百度地图开发,手机无法访问百度api获取经纬度。
实现:后台通过前端访问获取经纬度接口,传入地址,返回经纬度。
/// <summary>
/// 获取经纬度
/// </summary>
/// <param name="address"></param>
/// <returns></returns>
public static double[] GetXY(string address)
{
try
{
/// <summary>
///
/// </summary>
string url = String.Format("http://api.map.baidu.com/geocoding/v3/?address={0}&output=json&ak={1}", address, key);
HttpClient client = new HttpClient();
//结果
string result = client.GetStringAsync(url).Result;
var locationResult = (JObject)JsonConvert.DeserializeObject(result);
string lngStr=locationResult["result"]["location"]["lng"].ToString();
string latStr = locationResult["result"]["location"]["lat"].ToString();
double lng = double.Parse(lngStr);
double lat = double.Parse(latStr);
return new double[] { lng, lat };
}
catch (Exception ex)
{
return null;
}
}
需要自己去百度开发者平台申请key
http://lbsyun.baidu.com/index.php?title=%E9%A6%96%E9%A1%B5