public static (double? lng,double? lat,string country,string province,string city,string area,string addr) GetXY(string address, System.Net.Http.HttpClient client)
{
string gdkey = "";//高德key
string bdkey = "";//百度key
//高德API会把地址拆分成省市区和坐标返回,百度只返回坐标
string url = String.Format("https://restapi.amap.com/v3/geocode/geo?address={0}&output=json&key={1}", address, gdkey);
//结果
string result = client.GetStringAsync(url).Result;
var locationResult = (JObject)JsonConvert.DeserializeObject(result);
if (locationResult["status"].ToString() == "1" && locationResult["geocodes"].Count() > 0)
{
var coordinate = locationResult["geocodes"][0]["location"].ToString().Split(",");
var country = locationResult["geocodes"][0]["country"].ToString().Replace("[]", "");
var province = locationResult["geocodes"][0]["province"].ToString().Replace("[]", "");
var city = locationResult["geocodes"][0]["city"].ToString().Replace("[]", "");
var district = locationResult["geocodes"][0]["district"].ToString().Replace("[]", "");
var street = locationResult["geocodes"][0]["street"].ToString().Replace("[]","");
var number = locationResult["geocodes"][0]["number"].ToString().Replace("[]", "");
double? lng = null, lat = null;
if (coordinate.Length == 2)
{
string lngStr = coordinate[0];
string latStr = coordinate[1];
lng = double.Parse(lngStr);
lat = double.Parse(latStr);
//高德坐标转百度
var baiduXY = Gcj02ToBd09(lat.Value, lng.Value);
lng = baiduXY[1];
lat = baiduXY[0];
}
return (lng, lat, country, province, city, district, street + number);
}
else
{
//百度API
url = String.Format("http://api.map.baidu.com/geocoding/v3/?address={0}&output=json&ak={1}", address, bdkey);
result = client.GetStringAsync(url).Result;
locationResult = (JObject)JsonConvert.DeserializeObject(result);
if (locationResult["status"].ToString() == "0")
{
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 (lng, lat, "", "", "", "", "");
}
else
{
return (null, null, "", "", "", "", "");
}
}
}
08-18
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交