Android中使用Google 地图
Android中使用Google 地图
第一步:建一个包含Google APIs的工程
第二步:获取Android Maps API 金钥
第三步:载入MapView
第四步:通过MapController控制地图缩放与移动
获取密钥的方法:
第一步:C:\Users\Jet>keytool -list -alias androiddebugkey -keystore "C:\Users\Jet\.android\debug.keystore" -storepass android -keypass android
红字部分是keystore的具体路径,此处修改成自己电脑上keystore的真实路径即可
执行命令后,会得到MD5认证指纹
第二步:打开http://code.google.com/intl/zh-CN/android/maps-api-signup.html,在页面最下部有一处输入认证指纹得到密钥的地方。将你得到的MD5指纹输入,提交即可得到密钥。(上面这个网址貌似需要翻墙之后才能正常打开,否则输入指纹的地方显示不出来)
密钥格式:0QB6Bk20bHSaAJIZN******3upyNFLK_tujWTBw
注意:
1)不要把经度和纬度搞混,否则影响正常显示
2)在manifest.xml的<application>标签中加这一句<uses-library android:name="com.google.android.maps"/>
- public class LLAddressActivity extends MapActivity {
- private MapController mMapController;
- private MapView mapView;
- private Button button1, button2, button3;
- private EditText longet, latiet;
- private int zoomLevel = 0;
- private double dLati = 25.0402555;
- private double dLong = 121.512377;
- private String longitude = "";
- private String latitude = "";
- @Override
- protected void onCreate(Bundle icicle) {
- super.onCreate(icicle);
- setContentView(R.layout.lladdress);
- //find components
- mapView = (MapView) findViewById(R.id.address_mapview);
- button1 = (Button) findViewById(R.id.address_search);
- button2 = (Button) findViewById(R.id.address_plus);
- button3 = (Button) findViewById(R.id.address_minus);
- longet = (EditText) findViewById(R.id.longtitude_et);
- latiet = (EditText) findViewById(R.id.latitude_et);
- mMapController = mapView.getController();
- // 设置MapView的显示选项
- mapView.setSatellite(true);
- //默认的放大层级
- zoomLevel = 17;
- mMapController.setZoom(zoomLevel);
- refreshMapView();
- button1.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- longitude = longet.getText().toString();
- latitude = latiet.getText().toString();
- dLong = Double.parseDouble(longitude);
- dLati = Double.parseDouble(latitude);
- refreshMapView();
- Log.e("MAP", "latitude:" + dLati + "logitude" + longitude);
- }
- });
- button2.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- zoomLevel++;
- if (zoomLevel > mapView.getMaxZoomLevel()) {
- zoomLevel = mapView.getMaxZoomLevel();
- }
- mMapController.setZoom(zoomLevel);
- }
- });
- button3.setOnClickListener(new Button.OnClickListener() {
- @Override
- public void onClick(View v) {
- zoomLevel--;
- if (zoomLevel < 1) {
- zoomLevel = 1;
- }
- mMapController.setZoom(zoomLevel);
- }
- });
- }
- /**
- * 重整Map的Method
- */
- private void refreshMapView() {
- GeoPoint p = new GeoPoint((int) (dLati * 1E6), (int) (dLong * 1E6));
- mapView.displayZoomControls(true);
- /* 将Map的中点移动GeoPoint */
- mMapController.animateTo(p);
- mMapController.setZoom(zoomLevel);
- }
- @Override
- protected boolean isRouteDisplayed() {
- return false;
- }
- }
布局文件中使用这样一段来显示地图
- <com.google.android.maps.MapView
- android:id="@+id/address_mapview"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:clickable="true"
- android:apiKey="0QB6Bk20b**********upyNFLK_tujWTBw" />
评论暂时关闭