百度地图定位

实验效果图:


主要代码:

Mainactivity中的代码:

package com.example.baidumap;  
  
import java.util.List;  
  
import com.baidu.mapapi.BMapManager;  
import com.baidu.mapapi.map.LocationData;  
import com.baidu.mapapi.map.MapController;  
import com.baidu.mapapi.map.MapView;  
import com.baidu.mapapi.map.MyLocationOverlay;  
import com.baidu.platform.comapi.basestruct.GeoPoint;  
import com.example.baidumap.R;  
  
import android.location.Location;  
import android.location.LocationManager;  
import android.os.Bundle;  
import android.app.Activity;  
import android.content.Context;  
import android.view.Menu;  
import android.widget.Toast;  
  
public class MainActivity extends Activity {  
  
    private BMapManager manager;  
  
    private MapView mapView;  
    private LocationManager locationManager;  
  
    private String provider;  
  
  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        manager = new BMapManager(this);  
        manager.init("Vyi9TssaKUZRZsNSjX6LloYrpIPfDlHA", null);  
        setContentView(R.layout.activity_main);  
        mapView = (MapView) findViewById(R.id.map_view);  
        mapView.setBuiltInZoomControls(true);  
        locationManager = (LocationManager) getSystemService(Context. LOCATION_SERVICE);  
        // 获取所有可用的位置提供器  
        List<String> providerList = locationManager.getProviders(true);  
        if (providerList.contains(LocationManager.GPS_PROVIDER)) {  
            provider = LocationManager.GPS_PROVIDER;  
        } else if (providerList.contains(LocationManager.NETWORK_PROVIDER)) {  
            provider = LocationManager.NETWORK_PROVIDER;  
        } else {  
            // 当没有可用的位置提供器时,弹出Toast提示用户  
            Toast.makeText(this, "No location provider to use", Toast.LENGTH_SHORT).show();  
            return;  
        }  
        Location location = locationManager.getLastKnownLocation(provider);  
        if (location != null) {  
            navigateTo(location);  
        }  
  
    }  
  
    private void navigateTo(Location location) {  
        // TODO Auto-generated method stub  
        MapController controller = mapView.getController();  
        controller.setZoom(16); // 设置缩放级别  
        GeoPoint point = new GeoPoint((int) (location.getLatitude() * 1E6),  
                            (int) (location.getLongitude() * 1E6));  
        controller.setCenter(point); // 设置地图中心点  
        MyLocationOverlay myLocationOverlay = new MyLocationOverlay(mapView);  
        LocationData locationData = new LocationData();  
        // 指定我的位置  
        locationData.latitude = location.getLatitude();  
        locationData.longitude = location.getLongitude();  
        myLocationOverlay.setData(locationData);  
        mapView.getOverlays().add(myLocationOverlay);  
        mapView.refresh(); // 刷新使新增覆盖物生效  
  
    }  
  
    @Override  
      
    protected void onResume() {  
        mapView.onResume();  
        if (manager != null) {  
            manager.start();  
        }  
        super.onResume();  
    }  
  
    @Override  
    protected void onPause() {  
        mapView.onPause();  
        if (manager != null) {  
            manager.stop();  
        }  
        super.onPause();  
    }  
      
    @Override  
    protected void onDestroy() {  
        mapView.destroy();  
        if (manager != null) {  
            manager.destroy();  
            manager = null;  
        }  
        super.onDestroy();  
    }  
  
}  

Layout:

<com.baidu.mapapi.map.MapView  
        android:id="@+id/map_view"  
        android:layout_width="match_parent"  
        android:layout_height="match_parent"  
        android:clickable="true" />  


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值