安卓的谷歌地图简单实现,能够显示地图,并且定位到当前位置

网上的教程和讲解有一大堆,我就不细说了,直接上代码

需要注意的是,我这是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谷歌地图+定位相关推荐

  1. android获得图片的坐标,Android百度地图定位后获取周边位置的实现代码

    本文实例讲解Android百度地图定位后获取周边位置的实现代码,分享给大家供大家参考,具体内容如下 效果图: 具体代码: 1.布局文件 android:orientation="vertic ...

  2. android 高德地图定位获取经纬度

    android 高德地图定位获取经纬度 之前开发定位都是集成百度的,领导说要用高德的,没办法干吧,官方的文档太详细了看着真累. 我们得先去官网注册开发者账号,创建应用,填写自己项目的包名和SHA1, ...

  3. Android百度地图定位APP,显示出当前位置坐标

    Android百度地图定位APP,显示出当前位置坐标 官网配置百度地图 通过CMD命令获取SHA1 在百度的官网里面创建一个应用 Android配置 显示地图即定位 配置 AndroidManifes ...

  4. android 百度地图定位SDK使用方法

    本以为gps定位就只是拿个经纬度,不会很复杂,结果折腾了一下午才弄好,惭愧啊~ Ps:今天练跆拳道,刚热身就两条腿一起抽筋,难道是平时撸多了......好吧,我想多了,废话不多说,开始入正题~ 首先介 ...

  5. Android谷歌地图服务开发注册流程及问题

    开发基于谷歌地图的应用和普通的Android应用不同,Google map的类库不是android平台的基本类库,是Google api的一部分,所以建立项目时,SDK要选择Google APIs: ...

  6. unlegal android,百度地图定位 Cordova 插件 cordova-plugin-baidumaplocation

    软件介绍 百度地图定位Cordova插件,支持Android,IOS 可以在此地址查看example 基于百度地图Android版定位SDK(v7.1)以及百度地图IOS SDK (v3.2.1) 一 ...

  7. android 地图定位失败,Android 高德地图定位遇到的异常

    最近项目中集成了高德地图定位功能,使用都是正常按照高德开发文档来的,目前出现的问题是退出整个应用程序时(应用的主界面显示地图同时开启了实时定位),报错误如下: 12-26 10:21:56.739 2 ...

  8. Android 高德地图定位和导航

    1. 在高德开放平台注册帐号 2.在高德地图开发平台中下载Android平台下载地图SDK和定位SDK和导航SDK文件 3. 添加jar包,将jar包放入工程的libs目录下. (下载的三合一的SDK ...

  9. android 百度地图定位总结

    百度地图用过几次,往往用过即忘,疏于总结,这次归纳一下 api-key, jar导入,Menifest.xml配置参考官方文档, 基于jar包 3.6.1版,地图sdk版本不同,方法会有差异 效果图: ...

最新文章

  1. Android仿QQ侧滑菜单
  2. python小波特征提取_Python 小波包变换,小波包能量特征提取 代码
  3. cocos2dx 3.3 Director setNotificationNode BUG
  4. web服务器虚拟,虚拟web服务器
  5. SpringBoot 2.x 监控中心:Actuator
  6. 网站三级分销数据库如何设计,简单案例
  7. 清华镜像源安装 NGboost XGboost Catboost
  8. 微信 for Mac 3.1.0 测试版发布(附安装包),新增「发朋友圈」功能
  9. SRM 212 Div II Level One: YahtzeeScore
  10. OpenGL(三)——OpenGL着色器基础
  11. Spring与SpringMVC的区别
  12. MediaPlayer的错误修复
  13. [JS3] 立即执行JS
  14. 小白用python处理excel文件-Python读、写Excel文件(三种模块三种方式,小白也可学会)...
  15. Red and Black(红与黑)BFS
  16. 七、WGS84 UTM
  17. 2022-2028全球民宿行业调研及趋势分析报告
  18. 穿越火线计算机中丢失,分享一个CF卡数据丢失该如何恢复的方法
  19. Centos7恢复xfs删除文件
  20. JavaFX报错: Exception in thread WindowsNativeRunloopThread java.lang.NoSuchMethodError

热门文章

  1. Excel中如何制作下拉菜单
  2. 现货黄金入门与技巧:风险管理
  3. xp计算机限制打开u盘,禁止xp系统U盘写入文件的四个方法
  4. 隐私计算技术|私有信息检索(PIR)及其应用场景
  5. 【总结】2022GDOI普及组 没得游记
  6. python人像录制加声音_Python实现电脑录音(含音频基础知识讲解)
  7. 多商户商城系统功能拆解06讲-平台端商家入驻协议
  8. vue学习笔记-关于element ui 安装失败的问题解决
  9. 《WOOP思维心理学》 读书笔记
  10. Dalvik和ART