开发者社区> 问答> 正文

钉钉js获取当前地理位置信息(单次定位)同一位置返回的经纬度差距非常大。

https://open.dingtalk.com/document/orgapp/obtain-current-geographic-location-information-single-positioning

调用获取当前地理位置接口dd.device.geolocation.get,设置 targetAccuracy 为 200,返回的位置不精准且耗时过长。请钉钉开发同学帮忙看一下,如何提升精准度和时长问题

dd.device.geolocation.get({ targetAccuracy : Number, coordinate : Number, withReGeocode : Boolean, useCache:true, //默认是true,如果需要频繁获取地理位置,请设置false onSuccess : function(result) { /* 高德坐标 result 结构 { longitude : Number, latitude : Number, accuracy : Number, address : String, province : String, city : String, district : String, road : String, netType : String, operatorType : String, locationType:1, errorMessage : String, errorCode : Number, isWifiEnabled : Boolean, isGpsEnabled : Boolean, isFromMock : Boolean, provider : wifi|lbs|gps, isMobileEnabled : Boolean } */ }, onFail : function(err) {} });

企业微信截图_202291b2-549f-4b0f-8ee0-29cbfdd44dc5.png 企业微信截图_304c45ac-dd9b-4dfd-81ac-229bb6c0d318.png

展开
收起
1840720913869093 2023-06-16 11:03:22 237 0
1 条回答
写回答
取消 提交回答
  • 在钉钉应用中使用 JS API 获取当前地理位置信息时,由于多种因素的影响(例如设备硬件、网格偏移、信号干扰等),同一位置返回的经纬度可能会有较大的差距。

    为了解决这个问题,可以考虑使用更为精细和可靠的定位方法。例如,可以结合 GPS、Wi-Fi、基站等方式进行混合定位,或者使用第三方地图服务提供商(如高德地图、百度地图等)提供的定位 SDK 进行定位。

    具体来说,可以按照以下步骤进行操作:

    1. 选择适合的定位方式:根据业务需求和用户场景,选择适合的定位方式。如果需要更精准的定位结果,并且设备支持 GPS 定位,则建议优先使用 GPS 定位。否则,可以考虑其他定位方式。

    2. 使用第三方地图服务:如果需要更加稳定和可靠的定位结果,可以考虑使用第三方地图服务提供商的定位 SDK。这些 SDK 提供了更为精细和准确的定位算法,并且能够根据用户的设备型号和网络状态进行自动调整和优化。

    3. 设置定位参数:在进行定位操作之前,需要按照相应的定位方式,对定位参数进行正确设置。例如,在使用 GPS 定位时,需要确保设备已经开启 GPS 功能,并获取到 GPS 信号。在使用第三方地图服务提供商的定位 SDK 时,需要设置相应的 API Key 和其他参数。

    4. 处理定位结果:最后,需要对定位结果进行处理和验证。可以根据返回的经纬度信息,进行精度估算、坐标系转换等操作,以确保定位结果的准确性。同时,还需要对可能出现的异常情况(如权限拒绝、网络不良等)进行处理和提示。

    总之,通过选择合适的定位方式,并根据具体需求和场景进行正确配置和处理,可以实现更为精准和可靠的地理位置定位。

    2023-06-16 11:57:17
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
+ 订阅
问答排行榜
最热
最新

相关电子书

更多
JavaScript异步编程 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载