C# WGS84转高德坐标系
时间: 2023-11-22 18:44:59 浏览: 82
使用Qt编写的将WGS84、高德GCJ-02、百度BD-09不同坐标系间的转换Demo
要在C#中实现WGS84坐标到高德火星坐标的转换,可以通过调用高德提供的Web坐标转换API来实现。具体步骤如下:
1. 构造请求URL,包括需要转换的经纬度坐标、高德提供的开发者key等参数。
2. 发送HTTP请求,获取API返回的JSON格式数据。
3. 解析JSON数据,获取转换后的高德火星坐标系坐标。
4. 将高德火星坐标系坐标转换为需要的坐标系,例如百度坐标系。
以下是一个示例代码,可以实现WGS84坐标到高德火星坐标系的转换:
```
using System;
using System.Net;
using System.IO;
using System.Text;
using Newtonsoft.Json.Linq;
public class CoordinateConverter
{
private const string API_URL = "https://restapi.amap.com/v3/assistant/coordinate/convert";
private const string API_KEY = "your_amap_api_key";
public static string WGS84ToAMap(double lng, double lat)
{
string url = $"{API_URL}?key={API_KEY}&locations={lng},{lat}&coordsys=wgs84";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "GET";
request.ContentType = "application/json";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream stream = response.GetResponseStream();
StreamReader reader = new StreamReader(stream, Encoding.UTF8);
string result = reader.ReadToEnd();
JObject json = JObject.Parse(result);
string locations = json["locations"].ToString();
return locations;
}
}
```
调用示例:
```
double lng = 116.397128;
double lat = 39.916527;
string amapCoord = CoordinateConverter.WGS84ToAMap(lng, lat);
Console.WriteLine($"WGS84坐标({lng},{lat})转换为高德火星坐标系坐标为:{amapCoord}");
```
阅读全文