android高德地图定位位置信息为空,APICloud 使用地图定位以及高德地图获取当前位置经纬度都是0问题...

APICloud从“云”和“端”两个方向提供API,简化移动应用开发技术,为开发者快速实现移动应用的开发、测试、发布、管理和运营的全生命周期管理。

### 实现定位

在APICloud的模块库里边用于定位的地图有很多如百度、高德,文章用高德地图为例:

#### 1、在app的模块中添加 "aMapLBS" 模块

#### 2、获取高德地图的 API Key。

a、去高德开放平台注册一个开发者账号,链接:http://lbs.amap.com/

b、在高德开放平台中创建一个应用:控制台--->应用管理---->创建新应用

应用名称随便填,应用类型根据app的作用选择

![在高德开放平台中创建一个应用](/uploads/content/5d551564bffd6.png "在高德开放平台中创建一个应用")

c、添加新Key:选择刚刚创建的应用,点击右侧的 "添加新Key"

key名称:根据命名规范命名,最好也根据下APP的名称和作用。

服务平台:根据APP的服务平台写就好,我这里选的Android

![添加新Key](/uploads/content/5d5515dd71856.png "添加新Key")

发布版安全码SHA1:使用APICloud平台开发的这个很方便,因为APICloud平台已经提供给你了。打开APICloud找到需要添加定位信息的APP,点击左侧的概览。

![发布版安全码SHA1](/uploads/content/5d551600570fb.jpg "发布版安全码SHA1")

通过点击 "概览" 之后看到的东西比较少,基本上只能看到APP信息。点击右下角的^就能看到更全的,像`appKey`、`Android签名证书SHA1码`、`Android包名`这些都是我们需要的。

将APICloud项目概览中的`Android签名证书SHA1码`复制到高德的`发布版安全SHA1`中。

PackageName:获取方法跟获取SHA1码是一样的,将APICloud项目概览中的 `Android包名`复制过来就好啦。

d、提交成功后,应用下方就会多出一条刚刚创建的Key信息,至此获取API Key完成。

#### 3、将 API Key配置到项目的config.xml文件中:

```

```

注意:一个API key只能对应于一个APP项目,多个APP中使用同一个API key会出现异常。

#### 4、页面使用Demo:

```

/**

*点击“所在位置”所在a标签时触发该事件,该事件用来定位当前所处位置

* @param obj:点击的A标签

**/

function loadPosition(){

var aMapLBS = api.require('aMapLBS');//引入模块

//配置定位信息

aMapLBS.configManager({

accuracy: 'hundredMeters',

filter: 1

}, function(ret, err) {

if (ret.status) {

//先取消其他定位

aMapLBS.stopUpdatingLocation();

//先定位经纬度

aMapLBS.singleLocation({

timeout: 10

},function(ret,err){

if (ret.status) {

//alert(JSON.stringify(ret));

//alert("经度:"+ret.lon+"\n纬度:"+ret.lat);

$("#longitude").val(ret.lon);

$("#latitude").val(ret.lat);

//直接定位地址

aMapLBS.singleAddress({

timeout: 10

}, function(ret2, err2) {

if (ret2.status) {

//alert(JSON.stringify(ret2));//获取所属兴趣点名称

var address = ret2.address.AOIName;

$("#position").text(ret2.address.AOIName);

}

});

}

});

}

});

}

```

### 注意:

添加新的模块之后,需要自定义loader,不能再使用系统的loader,也不能再使用以前的loader,需要重新编译自定义loader。

重新编译并下载安装之后,最好来一次“全量真机同步” 。有时候重编且全量同步之后依旧报错(最近一次使用就是在调用aMapLBS.singleLocation时,ret.status一直是false),

可以尝试下云编译(云编译之前记得把所有需要提交的代码都提交)编译完成后看看是否有问题,若没有问题再重新编译自定义loader(这次这个问题就是这么解决的)。

***利用 getLoaction 方法定位的时候,获取到当前位置的经纬度却是 0.0 那是因为没有打开 GPS***

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值