using System;
using System.IO;
using System.Xml;
class Program
{
static void Main(string[] args)
{
string csvFile = “coordinates.csv”;
string kmlFile = “output.kml”;
int coordColRow = 0; // 默认第一行第一列是经度,第二列是纬度
// 读取CSV文件中的坐标数据
using (StreamReader sr = new StreamReader(csvFile))
{
string line = sr.ReadLine(); // 读取标题行
string[] headers = line.Split(',');
coordColRow = Convert.ToInt32(headers[0]); // 获取经度所在的列索引
string[] coordinates = sr.ReadLine().Split(','); // 读取第一行数据作为示例坐标
double longitude = Convert.ToDouble(coordinates[coordColRow]); // 获取经度值
double latitude = Convert.ToDouble(coordinates[headers.Length - 1]); // 获取纬度值
AddCoordinateToKML(kmlFile, longitude, latitude);
}
}
static void AddCoordinateToKML(string kmlFile, double longitude, double latitude)
{
// 创建KML文件并添加坐标数据
XmlDocument doc = new XmlDocument();
XmlElement kml = doc.CreateElement("kml");
XmlElement document = doc.CreateElement("Document");
XmlElement placemark = doc.CreateElement("Placemark");
XmlElement point = doc.CreateElement("Point");
XmlElement coordinates = doc.CreateElement("coordinates");
point.AppendChild(coordinates);
placemark.AppendChild(point);
document.AppendChild(placemark);
kml.AppendChild(document);
// 添加坐标数据到KML文件
coordinates.InnerText += string.Format("{0},{1}\n", longitude, latitude);
// 保存KML文件
doc.Save(kmlFile);
}
}
这段代码首先读取CSV文件中的坐标数据,然后使用AddCoordinateToKML方法将坐标数据添加到KML文件中,并保存为KML文件。在AddCoordinateToKML方法中,使用XmlDocument类创建KML文件,并将坐标数据添加到coordinates元素中,最后保存文件。请注意,此示例仅演示了如何添加一个坐标到KML文件,如果需要添加多个坐标,可以在循环中调用AddCoordinateToKML方法。