Laya入坑实录-获取经纬度以及GPS定位

Laya 版本 : 1.7.18
TypeScript : 5.6.0

关于定位

Laya引擎已经很友好的集成了定位服务,因此一般情况下不需要其他第三方的地图服务,另外值得注意的一点是Laya的定位服务底层是使用的高德地图服务,开发时需要考虑兼容性问题。

如何获取当前经纬度

先贴出核心代码,在慢慢介绍:

import Handler = Laya.Handler;
class LoacltionTool{
    public getCurPosition (onSucces : Handler , onErro : Handler){
        if (Laya.Geolocation.supported) 
        { 
            Laya.Geolocation.enableHighAccuracy = true;
            Laya.Geolocation.getCurrentPosition(onSucces, onErro); 
        } 
        else 
        { 
            console.error("[LoacltionTool]浏览器不支持使用HTML5来获取地理位置服务");
            onErro.run();
        }
    }
}

该工具类作用是获取当前的精确位置并返回其经纬度,当定位失败或错误时会执行onErro回调反之执行onSucces回调。

Laya.Geolocation介绍

Laya.Geolocation是官网提供的定位API,其中会用到几个关键方法,如下

  • Laya.Geolocation.supported : 判断定位服务是否可用
  • Laya.Geolocation.enableHighAccuracy : 是否启用高精度模式,默认关闭,如果启动会增加定位时长同时更加耗电
  • Laya.Geolocation.getCurrentPosition(onSucces, onErro) :获取当前位置,需分别传入成功和失败的回调Handler。

以上就是常用的几个核心方法,还需要了解其他请前往官网API查看Laya.Geolocation类。

定位回调

成功回调需要注意 其回调参数类型是 Laya.GeolocationInfo
其中longitude表示经度,latitude表示纬度,坐标格式是原始坐标
如果需要将经纬度调用在其他第三方地图服务中,请先进行坐标转换

示例代码

代码使用了上文中的工具类

    new LoacltionTool().getCurPosition(
        Handler.create(this , (pos)=>{
            alert("定位成功: " +  pos.longitude.toString() + "," +pos.latitude.toString());
        }),
        Handler.create(this , (err)=>{
            alert("定位失败: " + err);
        }));

如有错误请指正,如有帮助请点赞!

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页