Android基于高德地图实现多人实时共享位置

本文介绍了如何使用高德地图API和TCP通信在Android上实现多人实时位置共享功能。首先,通过高德地图进行实时定位,然后建立TCP连接交换位置数据。接着解析接收到的数据并在地图上添加Marker展示位置。服务器端存在一个小bug,当TCP连接未正常关闭时,可能导致位置信息未清除,需要手动处理。作者分享了相关代码并提供了源码链接。
摘要由CSDN通过智能技术生成

自开发上一款智慧旅游产品后,发现一个很有意义而且很实用的功能,就是模仿微信的位置共享,可以看到对方的位置,一直想模仿做出这样的效果.最近闲下来之后终于实现了.下面就把我的实现过程和心得分享给大家.

步骤

1.基于高德地图定位

要实现实时位置共享,首先就要实现实时定位,高德官方api给的很详细,只要跟着步骤来,还是没什么难度的,下面直接上代码了

/**
 * 设置地图属性
 */
private void setUpMap(){
    aMap.setLocationSource(this);
    aMap.setMyLocationEnabled(true);// 设置为true表示显示定位层并可触发定位,false表示隐藏定位层并不可触发定位,默认是false
    aMap.setMyLocationType(AMap.LOCATION_TYPE_LOCATE);// 跟随模式
    aMap.getUiSettings().setMyLocationButtonEnabled(true);// 设置默认定位按钮是否显示
    aMap.setMyLocationEnabled(true);// 设置为true表示显示定位层并可触发定位,false表示隐藏定位层并不可触发定位,默认是false
}
//激活定位
@Override
public void activate(OnLocationChangedListener listener) {
    mListener = listener;
    if (mlocationClient == null){
        mlocationClient = new AMapLocationClient(MainActivity.this);
        mLocationOption = new AMapLocationClientOption();
        mlocationClient.setLocationListener(this);// 设置定位监听
        mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);
        mlocationClient.setLocationOption(mLocationOption);// 设置为高精度定位模式
        mLocationOption.setInterval(1000);
        mlocationClient.startLocation();
    }
}

/**
*位置信息发生变化时
*/
@Override
public void onLocationChanged(AMapLocation aMapLocation) {
    if (mListener != null && aMapLocation != 
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值