You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何从Google Maps获取经纬度?点击按钮显示经纬度代码故障排查

解决地址转经纬度弹窗无响应的问题

我来帮你排查下代码里的问题,主要有两个核心点导致功能失效:

问题1:DOM加载顺序问题

你的jQuery点击事件绑定代码在<head>里执行时,页面的<body>还没完成渲染,此时$("#btn")根本找不到按钮元素,事件自然绑定失败。

问题2:Google Maps API调用限制

现在Google Maps Geocoding API要求必须传入有效的API密钥才能正常请求,不带密钥的请求大概率会被拒绝(返回OVER_QUERY_LIMITREQUEST_DENIED状态)。另外你的代码里是固定查询迈阿密的地址,没有实现“用户输入街道地址”的需求,这点我也帮你补上了。


修正后的完整代码

<html>
<head>
    <!-- 替换成你自己的Google Maps API密钥 -->
    <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&sensor=false"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <script>
        // 等待DOM完全加载后再绑定事件
        $(document).ready(function() {
            $("#btn").click(function() {
                // 获取用户输入的地址
                var userAddress = $("#address-input").val().trim();
                if (!userAddress) {
                    alert("请输入要查询的地址!");
                    return;
                }

                var geocoder = new google.maps.Geocoder();
                geocoder.geocode({ 'address': userAddress }, function(results, status) {
                    if (status == google.maps.GeocoderStatus.OK) {
                        var lat = results[0].geometry.location.lat();
                        var lng = results[0].geometry.location.lng();
                        alert("坐标:纬度 " + lat + ",经度 " + lng);
                    } else {
                        alert("查询失败:" + status);
                    }
                });
            });
        });
    </script>
</head>
<body>
    <input id="address-input" type="text" placeholder="请输入街道地址" />
    <input id="btn" type="button" value="查询坐标" />
</body>
</html>

关键改动说明

  • $(document).ready()包裹事件绑定代码,确保DOM渲染完成后再执行
  • 添加了地址输入框,实现用户自定义地址查询的需求
  • 强制要求传入Google Maps API密钥(你需要去Google Cloud控制台申请并替换YOUR_API_KEY
  • 增加了输入为空的校验,提升用户体验

内容的提问来源于stack exchange,提问作者Radiant Technosys

火山引擎 最新活动