uni-app h5 开发环境chooseLocation使用高德或者腾讯地图时的问题

发布于 1周前 作者 gougou168 来自 Uni-App

uni-app h5 开发环境chooseLocation使用高德或者腾讯地图时的问题

操作步骤:

1

预期结果:

1

实际结果:

1

bug描述:

如题,使用腾讯或者高德地图调用选择地点的api,如果没有传入经纬度则不能定位到当前位置,会使用Google的定位,国内不翻墙根本就无法拿到当前经纬度,且传入了经纬度也会调用谷歌的获取且报错Network location provider at ‘https://www.googleapis.com/’ : ERR_CONNECTION_TIMED_OUT.差不多等个8分钟左右就会提示了。

信息类别 详细信息
产品分类 uniapp/H5
PC开发环境 Windows
PC开发环境版本 Windows 10 家庭中文版 版本号22H2
HBuilderX类型 正式
HBuilderX版本 4.24
浏览器平台 Chrome
浏览器版本 5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1
项目创建方式 HBuilderX

2 回复

请上传一个能重现问题的测试工程


在uni-app的H5开发环境中,使用chooseLocation接口来调用高德或腾讯地图进行定位选择时,需要注意到H5平台的一些特殊限制和接口适配问题。由于chooseLocation是uni-app提供的原生接口,在H5平台上并不直接支持,因此需要通过其他方式来实现类似的功能。

以下是一个使用高德地图API在H5环境中实现定位选择的代码示例:

  1. 引入高德地图API

首先,你需要在H5页面中引入高德地图的JavaScript API。你可以在<head>标签中添加以下代码:

<script type="text/javascript" src="https://webapi.amap.com/maps?v=2.0&key=你的高德地图API密钥"></script>

请确保替换你的高德地图API密钥为你的实际高德地图API密钥。

  1. 创建地图容器

在页面中创建一个用于显示地图的容器:

<div id="mapContainer" style="width: 100%; height: 500px;"></div>
  1. 初始化地图并添加定位选择功能

在JavaScript中初始化地图,并添加定位选择的功能:

document.addEventListener('DOMContentLoaded', function() {
    var map = new AMap.Map('mapContainer', {
        zoom: 10,
        center: [116.397428, 39.90923]  // 默认中心点,可以根据需要调整
    });

    AMap.plugin('AMap.ToolBar', function() {
        var toolBar = new AMap.ToolBar();
        map.addControl(toolBar);
        toolBar.on('location', function(e) {
            var lnglat = e.lnglat;
            console.log('选择的位置:', lnglat);
            // 可以在这里处理选择的位置,例如发送到后端或更新页面状态
        });
    });
});

上述代码中,我们首先初始化了高德地图,并在地图上添加了工具栏(ToolBar)。工具栏包含了定位按钮,当用户点击定位按钮时,会触发location事件,我们可以从事件对象中获取到用户选择的位置坐标。

  1. 注意事项
  • 确保你的高德地图API密钥是有效的,并且已经开启了H5平台的权限。
  • 在实际项目中,你可能需要处理更多的地图交互和错误处理逻辑。
  • 如果需要使用腾讯地图,流程类似,但你需要引入腾讯地图的API,并按照腾讯地图的API文档来实现定位选择功能。

通过上述方式,你可以在uni-app的H5开发环境中实现类似chooseLocation的功能,从而满足用户定位选择的需求。

回到顶部