教你做android 上的google map 地图
tank 教你做在android上的简单的google map程序
第一步:申请google key
1.找debug.keystore的路径
myeclipse中
window -->preferences -->android-->build-->default debug keystore
default debug keystore ="C:\Documents and Settings\Administrator\.android\debug.keystore"
cmd 中:
keytool -list -alias androiddebugkey -keystore "C:\Documents and
Settings\Administrator\.android\debug.keystore"
输入:
android
就会得到指纹 7A:71:D1:*:EC:40:*:18:52:0A:08:B1:05:*:*:*
申请GOOGEL KEY 网址:http://code.google.com/intl/zh-CN/android/add-ons/google-apis/maps-api-
signup.html,输入后注册一个账号就可以得到 key了
第二步:
新建工程,注意在新建android project中build target中一定 要选google apis
前面自己的SDK因为安装没有完全所以build target中没有google apis,害自己困恼了点时间
OK没有的话重新安装一下SDK
新建一个类继承mapactivity
不多说贴源码:
1 | package com.android.google.tank;<br><br> import java.util.List;<br><br> import android.graphics.drawable.Drawable;<br> import android.os.Bundle;<br> import android.view.View;<br> import android.view.View.OnClickListener;<br> import android.widget.Button;<br><br> import com.google.android.maps.GeoPoint;<br> import com.google.android.maps.MapActivity;<br> import com.google.android.maps.MapController;<br> import com.google.android.maps.MapView;<br> import com.google.android.maps.Overlay;<br> import com.google.android.maps.OverlayItem;<br><br> public class MyGoogleMap extends MapActivity {<br> private MapView mapView;<br> private MapController mc;<br><br> @Override <br> protected boolean isRouteDisplayed() {<br> // TODO Auto-generated method stub<br> return false;<br> }<br><br> @Override<br> protected void onCreate(Bundle icicle) {<br> // TODO Auto-generated method stub<br> super.onCreate(icicle);<br><br> setContentView(R.layout.main);<br><br> <br> mapView = (MapView) findViewById(R.id.map);<br> mapView.setTraffic(true);//交通模式<br> mapView.setStreetView(false);//街道模式<br> mapView.setSatellite(false);//卫星模式<br> mc = mapView.getController();<br><br> GeoPoint gp = new GeoPoint((int) (31.132259 * 1000000),<br> (int) (121.180762 * 1000000)); // 地理坐标 上海<br> mc.animateTo(gp);<br> mc.setZoom(10);//缩放比例<br> //添加缩放功能事件<br> //放大<br> Button btnBig=(Button) findViewById(R.id.btnBig);<br> btnBig.setOnClickListener(new OnClickListener() {<br> <br> @Override<br> public void onClick(View v) {<br> // TODO Auto-generated method stub<br> mapView.getController().setZoom(mapView.getZoomLevel()+1);<br> }<br> });<br> //缩小<br> Button btnSmall=(Button) findViewById(R.id.btnSmall);<br> btnSmall.setOnClickListener(new OnClickListener() {<br> <br> @Override<br> public void onClick(View v) {<br> // TODO Auto-generated method stub<br> mapView.getController().setZoom(mapView.getZoomLevel()-1);<br> }<br> });<br> <br> <br> }<br><br>}<br><br><br><br><br><br> |
在Androidmanifest.xml中配置权限和google的加载包:
1 | <? xml version="1.0" encoding="utf-8"?>< br >< manifest xmlns:android="http://schemas.android.com/apk/res/android"<br> package="com.android.google.tank" android:versionCode="1"< br > android:versionName="1.0">< br > < uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />< br > < uses-permission android:name="android.permission.INTERNET" />< br > <!-- 访问网络的权限 --> < br > < application android:icon="@drawable/icon" android:label="@string/app_name">< br > < uses-library android:name="com.google.android.maps" />< br > <!-- 加载google包 --> < br > < activity android:name="com.android.google.tank.MyGoogleMap"<br> android:label="MapsDemo">< br > < intent-filter >< br > < category android:name="android.intent.category.LAUNCHER"></ category >< br > < action android:name="android.intent.action.MAIN"></ action >< br > </ intent-filter >< br > </ activity >< br > </ application >< br >< br >< br ></ manifest > |
main.xml中:
1 | <? xml version="1.0" encoding="utf-8"?>< br >< LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"<br> android:orientation="vertical" android:layout_width="fill_parent"< br > android:layout_height="fill_parent">< br >< br > < LinearLayout android:id="@+id/LinearLayout01"<br> android:layout_width="wrap_content" android:layout_height="wrap_content">< br > < Button android:id="@+id/btnBig" android:text="放大"<br> android:layout_width="wrap_content" android:layout_height="wrap_content"></ Button >< br > < Button android:id="@+id/btnSmall" android:text="缩小"<br> android:layout_width="wrap_content" android:layout_height="wrap_content"></ Button >< br > </ LinearLayout >< br > < com.google.android.maps.MapView <br> android:id="@+id/map" android:layout_width="match_parent"< br > android:layout_height="match_parent" android:enabled="true"< br > android:clickable="true" android:apiKey="你申请的goole key" />< br >< br ></ LinearLayout > |
ok 了,点击运行,就可以看到很cool的google地图了!
不过注意,一定要是可以连接网络的,模拟器要可以上网!模拟器的平台也要选择google api
下几篇我将贴出在google上自定义标注功能,和 如何获取gps自己的位置(经纬度!)
效果如图:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?