You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Google Geocoding API的C#实现:从地址获取坐标(附代码)

通过地址获取坐标的C#实现

我来给你补全并整理这个通过地址获取经纬度坐标的C#函数,完整的可运行实现如下,同时会拆解里面的关键逻辑:

using System;
using System.Net;
using System.Xml.Linq;

public static class GeocodingHelper
{
    public static string GetCoordonneesAdresse(string adresse)
    {
        // 构建地理编码API请求URL,处理地址的URL编码
        var requestUri = string.Format(
            "http://maps.googleapis.com/maps/api/geocode/xml?address={0}&sensor=false", 
            Uri.EscapeDataString(adresse));
        
        // 创建并发送Web请求,using语句确保资源自动释放
        using (var response = WebRequest.Create(requestUri).GetResponse())
        {
            // 加载XML响应文档
            var xdoc = XDocument.Load(response.GetResponseStream());
            
            // 检查是否有匹配的地址结果
            var result = xdoc.Element("GeocodeResponse")?.Element("result");
            if (result == null)
            {
                return "未找到该地址对应的坐标信息";
            }
            
            // 定位到坐标所在的XML节点
            var locationElement = result.Element("geometry")?.Element("location");
            if (locationElement == null)
            {
                return "地址解析失败,无法提取坐标";
            }
            
            // 提取纬度和经度值
            var lat = locationElement.Element("lat")?.Value;
            var lng = locationElement.Element("lng")?.Value;
            
            if (string.IsNullOrEmpty(lat) || string.IsNullOrEmpty(lng))
            {
                return "获取到的坐标信息不完整";
            }
            
            // 返回格式化后的坐标字符串,也可根据需求改成返回自定义坐标对象
            return $"纬度: {lat}, 经度: {lng}";
        }
    }
}

关键细节说明

  • URL编码处理:用Uri.EscapeDataString(adresse)处理地址里的空格、特殊符号,避免请求URL出现语法错误
  • 资源安全释放:用using包裹WebResponse,确保网络资源被自动回收,避免内存泄漏
  • 空值容错:全程使用?.空值运算符,防止API返回结构异常时触发空引用错误
  • 友好错误提示:针对无匹配结果、坐标节点缺失等情况,返回明确的提示信息

你可以根据业务需求调整返回值格式,比如改成返回包含Lat和Lng属性的自定义类,替代当前的字符串返回形式。

内容的提问来源于stack exchange,提问作者Zeyukan Ich'

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:12:07