地图,定位,切换地图类型
来源:互联网 发布:html5网购商城源码 编辑:程序博客网 时间:2024/06/07 09:57
在高德开放平台上下载地图的sdk和定位的sdk,解压jar包
将.jar文件复制到libs下面,如果是3D地图,需要将在main下面新jniLibs,将.jar文件以外的都复制到jniLibs里面,并且右键add 添加依赖库
清单文件中加入权限
<!--允许程序打开网络套接字--> <uses-permission android:name="android.permission.INTERNET" /> <!--允许程序设置内置sd卡的写权限--> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!--允许程序获取网络状态--> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!--允许程序访问WiFi网络信息--> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!--允许程序读写手机状态和身份--> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <!--用于进行网络定位--> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission> <!--用于访问GPS定位--> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission> <!--用于获取wifi的获取权限,wifi信息会用来进行网络定位--> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission> <!--用于读取手机当前的状态--> <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission> <!--用于申请调用A-GPS模块--> <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"></uses-permission> <!--用于申请获取蓝牙信息进行室内定位--> <uses-permission android:name="android.permission.BLUETOOTH"></uses-permission> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"></uses-permission>
application里面
<service android:name="com.amap.api.location.APSService"></service> <meta-data android:name="com.amap.api.v2.apikey" android:value="AppKey值"/>activity_main
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" ><LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1"> <Button android:text="标准地图" android:id="@+id/biaozhun" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <Button android:text="卫星地图" android:id="@+id/weixing" android:layout_width="80dp" android:layout_height="wrap_content" /> <Button android:text="夜间模式" android:id="@+id/yejian" android:layout_width="wrap_content" android:layout_height="wrap_content" /></LinearLayout> <com.amap.api.maps.MapView android:id="@+id/map" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="5"> </com.amap.api.maps.MapView> <TextView android:layout_width="wrap_content" android:layout_height="0dp" android:layout_weight="1" android:id="@+id/textview" android:text="Hello World!" /></LinearLayout>
MainActivity
import android.annotation.TargetApi;import android.graphics.BitmapFactory;import android.icu.text.SimpleDateFormat;import android.provider.SyncStateContract;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.widget.Button;import android.widget.ImageView;import android.widget.TextView;import com.amap.api.location.AMapLocation;import com.amap.api.location.AMapLocationClient;import com.amap.api.location.AMapLocationClientOption;import com.amap.api.location.AMapLocationListener;import com.amap.api.maps.AMap;import com.amap.api.maps.MapView;import com.amap.api.maps.model.BitmapDescriptorFactory;import com.amap.api.maps.model.LatLng;import com.amap.api.maps.model.Marker;import com.amap.api.maps.model.MarkerOptions;import java.util.Date;public class MainActivity extends AppCompatActivity { //声明AMapLocationClient类对象 public AMapLocationClient mLocationClient; private AMap aMap; //声明AMapLocationClientOption对象 public AMapLocationClientOption aMapLocationClientOption; private TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button biaozhun = (Button) findViewById(R.id.biaozhun); Button weixing = (Button) findViewById(R.id.weixing); Button yejian = (Button) findViewById(R.id.yejian); textView = (TextView) findViewById(R.id.textview); //三个按钮的点击事件 biaozhun.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { aMap.setMapType(AMap.MAP_TYPE_NORMAL);//正常模式 } }); weixing.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { aMap.setMapType(AMap.MAP_TYPE_SATELLITE);//卫星地图模式 } }); yejian.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { aMap.setMapType(AMap.MAP_TYPE_NIGHT);//夜间模式 } }); MapView mapView = (MapView) findViewById(R.id.map);//找到地图控件//在activity执行onCreate时执行mMapView.onCreate(savedInstanceState),创建地图 mapView.onCreate(savedInstanceState); //初始化地图控制器对象 aMap = mapView.getMap(); aMap.setMapType(AMap.MAP_TYPE_NORMAL);//正常模式 LatLng latLng = new LatLng(39.906901,116.397972); final Marker marker = aMap.addMarker(new MarkerOptions().position(latLng).title("北京").snippet("DefaultMarker")); marker.setIcon(BitmapDescriptorFactory.fromBitmap(BitmapFactory .decodeResource(getResources(),R.mipmap.ic_launcher))); //-----以上是地图,以下是定位 //设置定位回调监听 Start(); } public void Start(){ Log.i("----------------","nisadsadasd"); mLocationClient = new AMapLocationClient(getApplicationContext()); aMapLocationClientOption = new AMapLocationClientOption(); aMapLocationClientOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy); aMapLocationClientOption.setOnceLocation(true); aMapLocationClientOption.setOnceLocationLatest(true); aMapLocationClientOption.setNeedAddress(true); aMapLocationClientOption.setMockEnable(true); mLocationClient.setLocationOption(aMapLocationClientOption); //启动定位 mLocationClient.startLocation(); mLocationClient.setLocationListener(new AMapLocationListener() { @Override public void onLocationChanged(AMapLocation aMapLocation) { if (aMapLocation != null) { if (aMapLocation.getErrorCode() == 0) { // textView.setText(aMapLocation.getAddress()); textView.setText(aMapLocation.getLongitude()+" ,"+aMapLocation.getLatitude()); Log.i("------------",aMapLocation.getAddress()); }else { //定位失败时,可通过ErrCode(错误码)信息来确定失败的原因,errInfo是错误信息,详见错误码表。 Log.e("AmapError","location Error, ErrCode:" + aMapLocation.getErrorCode() + ", errInfo:" + aMapLocation.getErrorInfo()); } } } }); }}
阅读全文
0 0
- 地图,定位,切换地图类型
- 百度地图 定位 地图
- 地图定位
- 地图定位
- 地图定位
- 地图定位
- 地图、定位
- 地图定位
- 地图定位
- 地图定位
- 地图定位
- 地图定位
- 地图定位
- 地图定位
- 地图定位
- 地图定位
- 地图定位
- 高德地图的定位类型示例
- 自定义View之自定义开关
- 装饰器partial、update_wrapper、wraps作用以及如何使用
- 12864移植到STM32平台
- 第二届全国智能制造(中国制造2025)创新创业大赛西南赛区决赛开赛在即,首届中国(重庆)产业智能化创新发展论坛同期举办
- struts2和servlet同时用(访问servlet时被struts2过滤器拦截问题的解决)
- 地图,定位,切换地图类型
- Linux shell 速学
- 环境搭建填坑
- Eclipse常用快捷键
- Solr安装及配置Solr的下载Solr的文件夹结构
- java--对象引用与对象的区别(转载)
- Spring 5.0.0参考文档中文完整版
- TODO的使用以及自定义
- Python学习之dictionary