在开发Android应用软件的时候难免用到Maps,在开发Maps 的时候要先到谷歌的网站上注册一个Maps key然后才能在项目中使用。

http://code.google.com/intl/ja-JP/android/maps-api-signup.html

上面这个地址是获取MD5的值,但是你必须现有一串字符串才能注册,这个字符串如何获取呢?

方法:

在DOS下面运行keytool 他会出现一堆的命令,这是你可以根据命令提示输入命令,

keytool这只是让大家看看命令提示,你可以直接在dos命令里输入一下内容即可:

keytool -list -alias androiddebugkey -keystore “文件路径” -storepassandroid -keypass android

文件路径就是你的debug.keystore文件的绝对路径,如果你不知道的话你可以在开发工具里面看看,如果你是用的Eclipse的话你可以从window-->preferences-->android-->build-->Default debug keystore里面的值就是文件的路径,在输入的时候路径两边的引号不能少。

一般路径的默认地址是:C:\Users\Administrator\.android\debug.keystore,这个是windows7的默认路径,Administrator是你计算机的名称,可以根据具体的情况而定。

输入命令以后回车,会出现MD5的值。

然后到谷歌官网上注册即可,有了Maps API Key以后就可以新建Maps的项目。

新建项目以后你要在Android AVD里面新建一个google API的虚拟机然后在修改文件的AndroidMainfest.xml文件,在文件里面添加

<uses-library android:name="com.google.android.maps" />

这句话要放在Action里面,然后还要给权限

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.INTERNET" />

然后你还要修改main.xml文件在文件里面添加

<com.google.android.maps.MapView
android:id="@+id/map"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:enabled="true"
android:clickable="true"
android:apiKey="你申请的MAPS API KEY"
/>

然后你在你的java程序里添加内容

现引用main.xml文件还要导入一些谷歌的包

import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;

public class MapsActivity extends MapActivity {

// 地图显示控制相关变量定义
private MapView map=null;
private MapController mapCon;

// 菜单项
final private int menuMode=Menu.FIRST;
final private int menuExit=Menu.FIRST+1;
private int chooseItem=0;
final CharSequence[] MapMode =new CharSequence[]{"卫星地图","街道地图"};

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

// 获取MapView
map=(MapView)findViewById(R.id.map);
// 设置显示模式
map.setTraffic(true);
map.setSatellite(false);
map.setStreetView(true);
// 设置可以缩放
map.setBuiltInZoomControls(true);

// 设置初始地图的中心位置
GeoPoint geoBeijing=new GeoPoint((int)(39.95*10000000), (int)(116.37*10000000));
mapCon=map.getController();
mapCon.setCenter(geoBeijing);
}
@Override
protected boolean isLocationDisplayed(){
return false;
}


@Override
protected boolean isRouteDisplayed() {
// TODO Auto-generated method stub
return false;
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// 建立菜单
menu.add(0,menuMode,0,"地图模式");
menu.add(0, menuExit, 1, "退出");
return super.onCreateOptionsMenu(menu);
}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
return super.onKeyDown(keyCode, event);
}

@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
switch (item.getItemId()) {
case menuExit:
finish();
break;
case menuMode:
Dialog dMode=new AlertDialog.Builder(this)
.setTitle("地图模式设置")
.setSingleChoiceItems(MapMode, chooseItem, new DialogInterface.OnClickListener()
{


@Override
public void onClick(DialogInterface dialog, int which) {
chooseItem=which;
}
})
.setPositiveButton("确定", new DialogInterface.OnClickListener()
{

@Override
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case 0:
map.setSatellite(true);
//map.setTraffic(false);
//map.setStreetView(false);
break;
case 1:
//map.setSatellite(false);
map.setTraffic(true);
//map.setStreetView(false);
break;
case 2:
//map.setSatellite(false);
//map.setTraffic(false);
map.setStreetView(true);
break;
default:
break;
}
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {

}
})
.create();
dMode.show();
break;
default:
break;
}
return super.onMenuItemSelected(featureId, item);
}

}

然后运行就OK了!

更多相关文章

  1. android文件管理实现源码
  2. Android(安卓)Studio打不开的问题
  3. 【移动安全高级篇】————7、APK 的自我保护
  4. 读取指定路径数据库的方法
  5. android跳转到微信小程序
  6. Android常用功能代码块
  7. Android(安卓)adb shell后面可用的常用命令详细列举
  8. Pycharm安装PyQt5的详细教程
  9. NPM 和webpack 的基础使用

随机推荐

  1. 找到另一个列至少有两个不同值的id
  2. 一条牛B的SQL抵了我300多行的程序代码
  3. hibernate查询不出结果,sql已打印,请指教
  4. 又要请教在SQL中建表时的表名不能用纯数
  5. C# 往SQL数据库插入listbox的值
  6. mysql获取自增id最大值四种方法
  7. 超时时间已到.错误及Max Pool Size设置
  8. VS连接MySQL&#183;:Unable to connect to
  9. PL/SQL编程基础(1)
  10. sql/sql develop 在 安装64位oracle 机器