这些天,先来无事,细细想来不能就这么打酱油的度过,毕竟人得这一生也就那 三万六千五百多天的时间,我们得好好利用!鉴于此,决定好好地学习android 知识以备后用(其实主要是我对android UI 中的各个组件还是不是很了解,所以正在系统的看SDK 文档API 。。。)
那么我今天主要是在学习android map 这个东东,起初我也不会,但是不是有 李彦宏么?
结果找到了很多,但是我们得合理利用并且要总结出自己的经验!呵呵...
那么好的我们一步一步来:
第一步呢:当然是申请密钥了。。。这个是必需的
我们执行命令:
keytool -list -keystore ~/.android/debug.keystore
前提是。。你配置的环境变量。。然后“~/.android/debug.keystore” 你可以使用绝对路径。
。这个地方填写的就是 你 eclipse---》 window -》》》perference---》android---》Build---》你可以看到 右侧有一个 DefaultDebug keystore:C:\Users\XXXX\.android\debug.keystore 。。对的 。就是这个值 这个路径。。呵呵
。。然后可能会提示 你一些东西。。。我的提示我输入 keytool密码。。我没有输入 。。直接回车。。就出来了。。
你也可以试试。。呵呵!!
然后我们 会拿到 。。MD5 值。。
然后我们到这里 http://code.google.com/intl/zh-CN/android/maps-api-signup.html
去用我们的MD5 生成一个 密钥的。。。你直接生成就是了。。
他会告诉你怎么用的。。呵呵
好的那么我们来创建项目,记住。。一定要创建的是googleAPIS 这样的项目 。。
因为这里我们要用到maps.jar。。。。。呵呵。。让我们的activity继承MapActivity
这样的话。。我们就可以吧。。在 你的 layout文件中定义好了。。
然后我们需要在清单文件中。。。mainfest中。。添加权限。。
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission><uses-permission android:name="android.permission.INTERNET"></uses-permission><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
这里面的话。。
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
是设置我们可以访问 粗略或者 精细的位置。。
好了。。设置好了。。。。。。。
好了接下来我们看代码:
public class MainActivity extends MapActivity { private MapView mapView; private MapController controller; // 菜单项 final private int menuMode=Menu.FIRST; final private int menuExit=Menu.FIRST+1; private int chooseItem=0; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mapView = (MapView)findViewById(R.id.mapView); mapView.setTraffic(true); mapView.setSatellite(false); mapView.setStreetView(true); mapView.setBuiltInZoomControls(true); GeoPoint point = new GeoPoint((int)(23.08*1000000),(int)(113.15*1000000)); controller = mapView.getController(); controller.setCenter(point);//这个地方得注意。。。 controller.setZoom(12); } @Override protected boolean isRouteDisplayed() { // TODO Auto-generated method stub return false; }
。。运行一下结果。。看看吧。。。。
但是请注意这个地方。。
controller.setZoom(12);
我因为 之前没有设置。。所以在运行的时候我就可拿不到具体的城市位置。。。
GeoPoint point = new GeoPoint((int)(23.08*1000000),(int)(113.15*1000000));
因为我设置的是 一广州为中心。。。如果我们不设置
controller.setZoom(12);
貌似出来的是世界地图。。我这边是这样的。。呵呵!好了看看是不是有收获!