Android谷歌地图+定位
安卓的谷歌地图简单实现,能够显示地图,并且定位到当前位置
网上的教程和讲解有一大堆,我就不细说了,直接上代码
需要注意的是,我这是v2版的,和V1比申请key的地址和方式有点变化,使用也有一点变化。建议英文好的直接去看谷歌官方文档
MainActivity.java
package mobile.android.ch16.google.map;import java.util.List;import android.app.Activity;
import android.location.Address;
import android.location.Criteria;
import android.location.Geocoder;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.net.Uri;
import android.os.Bundle;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.support.v4.app.FragmentActivity;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
import com.google.android.maps.GeoPoint;public class MainActivity extends FragmentActivity implements LocationListener
{private GeoPoint geoPoint;private LocationManager locationManager;private String provider;private Location location;private GoogleMap gmap;private long exitTime = 0;@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 下面一段是测试定位及做标记的gmap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();// 获取地图对象gmap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(39.58,116.20), 10));// 定位北京知春路,level 10显示gmap.addMarker(new MarkerOptions().position(new LatLng(39.58, 116.20)).title("Marker"));// 在指定的 纬-经 度上做个标记(气泡)locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);Criteria criteria = new Criteria();criteria.setAccuracy(Criteria.ACCURACY_FINE);criteria.setAltitudeRequired(true);criteria.setBearingRequired(true);criteria.setCostAllowed(true);criteria.setPowerRequirement(Criteria.POWER_LOW);provider = locationManager.getBestProvider(criteria, true);// 得到Locationlocation = locationManager.getLastKnownLocation(provider);updateWithNewLocation(location);locationManager.requestLocationUpdates(provider, 2000, 10, this);}private void updateWithNewLocation(Location location){String latLongString;if (location != null){double lat = location.getLatitude();double lng = location.getLongitude();gmap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(lat,lng), 10));// 定位当前经纬度,level 10显示gmap.addMarker(new MarkerOptions().position(new LatLng(lat, lng)).title("Marker"));// 在指定的 纬-经 度上做个标记(气泡)}else{latLongString = "无法获取位置信息";}}@Overridepublic void onLocationChanged(Location location){// TODO Auto-generated method stubupdateWithNewLocation(location);}@Overridepublic void onProviderDisabled(String provider){// TODO Auto-generated method stubupdateWithNewLocation(null);}@Overridepublic void onProviderEnabled(String arg0){// TODO Auto-generated method stub}@Overridepublic void onStatusChanged(String provider, int status, Bundle extras){// TODO Auto-generated method stub}@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event){if (keyCode == KeyEvent.KEYCODE_BACK&& event.getAction() == KeyEvent.ACTION_DOWN)// 实现按返回键退出{if ((System.currentTimeMillis() - exitTime) > 2000){Toast.makeText(getApplicationContext(), "再按一次退出程序",Toast.LENGTH_SHORT).show();exitTime = System.currentTimeMillis();}else{finish();System.exit(0);}return true;}return super.onKeyDown(keyCode, event);}// 菜单项退出public boolean onCreateOptionsMenu(Menu menu){menu.add(0, 1, 1, "退出");return super.onCreateOptionsMenu(menu);}@Overridepublic boolean onOptionsItemSelected(MenuItem item){if (item.getItemId() == 1){finish();System.exit(0);}return super.onOptionsItemSelected(item);}}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/map"android:layout_width="match_parent"android:layout_height="match_parent"android:name="com.google.android.gms.maps.SupportMapFragment"/>
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="mobile.android.ch16.google.map"android:versionCode="1"android:versionName="1.0" ><uses-sdk android:minSdkVersion="8" /><applicationandroid:icon="@drawable/ic_launcher"android:label="@string/app_name" ><activityandroid:name="mobile.android.ch16.google.map.MainActivity"android:label="@string/app_name" ><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity><meta-dataandroid:name="com.google.android.maps.v2.API_KEY"android:value="AIzaSyBozNYeXMLwFWm7Q2TSfXPa9KbAEAlRLUs" /></application><uses-permission android:name="android.permission.INTERNET" /><permissionandroid:name="mobile.android.ch16.google.map.permission.MAPS_RECEIVE"android:protectionLevel="signature" /><uses-permission android:name="mobile.android.ch16.google.map.permission.MAPS_RECEIVE" /><uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-feature android:glEsVersion="0x00020000" android:required="true"/>
</manifest>
Android谷歌地图+定位相关推荐
- android获得图片的坐标,Android百度地图定位后获取周边位置的实现代码
本文实例讲解Android百度地图定位后获取周边位置的实现代码,分享给大家供大家参考,具体内容如下 效果图: 具体代码: 1.布局文件 android:orientation="vertic ...
- android 高德地图定位获取经纬度
android 高德地图定位获取经纬度 之前开发定位都是集成百度的,领导说要用高德的,没办法干吧,官方的文档太详细了看着真累. 我们得先去官网注册开发者账号,创建应用,填写自己项目的包名和SHA1, ...
- Android百度地图定位APP,显示出当前位置坐标
Android百度地图定位APP,显示出当前位置坐标 官网配置百度地图 通过CMD命令获取SHA1 在百度的官网里面创建一个应用 Android配置 显示地图即定位 配置 AndroidManifes ...
- android 百度地图定位SDK使用方法
本以为gps定位就只是拿个经纬度,不会很复杂,结果折腾了一下午才弄好,惭愧啊~ Ps:今天练跆拳道,刚热身就两条腿一起抽筋,难道是平时撸多了......好吧,我想多了,废话不多说,开始入正题~ 首先介 ...
- Android谷歌地图服务开发注册流程及问题
开发基于谷歌地图的应用和普通的Android应用不同,Google map的类库不是android平台的基本类库,是Google api的一部分,所以建立项目时,SDK要选择Google APIs: ...
- unlegal android,百度地图定位 Cordova 插件 cordova-plugin-baidumaplocation
软件介绍 百度地图定位Cordova插件,支持Android,IOS 可以在此地址查看example 基于百度地图Android版定位SDK(v7.1)以及百度地图IOS SDK (v3.2.1) 一 ...
- android 地图定位失败,Android 高德地图定位遇到的异常
最近项目中集成了高德地图定位功能,使用都是正常按照高德开发文档来的,目前出现的问题是退出整个应用程序时(应用的主界面显示地图同时开启了实时定位),报错误如下: 12-26 10:21:56.739 2 ...
- Android 高德地图定位和导航
1. 在高德开放平台注册帐号 2.在高德地图开发平台中下载Android平台下载地图SDK和定位SDK和导航SDK文件 3. 添加jar包,将jar包放入工程的libs目录下. (下载的三合一的SDK ...
- android 百度地图定位总结
百度地图用过几次,往往用过即忘,疏于总结,这次归纳一下 api-key, jar导入,Menifest.xml配置参考官方文档, 基于jar包 3.6.1版,地图sdk版本不同,方法会有差异 效果图: ...
最新文章
- Android仿QQ侧滑菜单
- python小波特征提取_Python 小波包变换,小波包能量特征提取 代码
- cocos2dx 3.3 Director setNotificationNode BUG
- web服务器虚拟,虚拟web服务器
- SpringBoot 2.x 监控中心:Actuator
- 网站三级分销数据库如何设计,简单案例
- 清华镜像源安装 NGboost XGboost Catboost
- 微信 for Mac 3.1.0 测试版发布(附安装包),新增「发朋友圈」功能
- SRM 212 Div II Level One: YahtzeeScore
- OpenGL(三)——OpenGL着色器基础
- Spring与SpringMVC的区别
- MediaPlayer的错误修复
- [JS3] 立即执行JS
- 小白用python处理excel文件-Python读、写Excel文件(三种模块三种方式,小白也可学会)...
- Red and Black(红与黑)BFS
- 七、WGS84 UTM
- 2022-2028全球民宿行业调研及趋势分析报告
- 穿越火线计算机中丢失,分享一个CF卡数据丢失该如何恢复的方法
- Centos7恢复xfs删除文件
- JavaFX报错: Exception in thread WindowsNativeRunloopThread java.lang.NoSuchMethodError