zoukankan      html  css  js  c++  java
  • Android Google Map(create md5, create google map key)

    其实Android 搭配Google Map还能实现很多功能,比如GPS导航,结合SNS实现提供各类的LBS位置服务等,本文只是带领你初窥了Android 搭配Google Map的强大功能,更多的还有待读者去实践发现。

    1> android 在开发google map 项目的时候,首先需要一个android.keystore文件,该文件在

       如果是win 7 则:C:\Users\Administrator\.android\
       如果是win xp 则:C:\Documents and Settings\Administrator\.android\
    下面,文件一般为:debug.keystore。如果不存在该文件,则需要参加这个文件,创建命令如下:
    C:\Program Files\Java\jdk1.6.0_10\bin>keytool -genkey -alias "C:\Users\Administrator\.android\debug.keystore" -keyalg RSA -validity 20000 -keystore android.keystore 
    请注意 这个 其中参数-validity 20000 ,则个是表示 这个表示是证书有效天数。
    C:\Users\Administrator\.android\debug.keystore  这个是android默认的证书地址路劲。可以在eclipse环境查看
    查看方式:window->preferences->andorid->Build 右边 defualt debug keystore 即为默认路劲。
    然后根据提示设置相应的内容,注意建议设置的用户名和密码统一为android ,因为eclipse中默认的证书用户名和密码也是android,如果设置其他的用户名和密码,则会带来不必要的麻烦。我就遇到过,如果设置成其他密码还要找办法去修改eclipse里面的默认密码。
    生成keystore文件之后可以通过
     keytool -list -alias androiddebugkey -keystore "C:\Users\Administrator\.android\debug.keystore" -storepass android -keypass android
    来获取certificate's MD5 fingerprint 

    2> 现在我们就产生了debug模式下的MD5密纹了,要注意的是,你必须重新为生产环境下的应用重新生成一次MD5密纹,因为如果在不同的Android SDK或者不同的开发环境下,MD5密纹是不同的,否则换了环境的话Google Map将不会工作。

      产生的MD5密纹的输出如下面:

      androiddebugkey, Apr 22010, PrivateKeyEntry,

    Certificate fingerprint (MD5): 
    72:BF:25:C1:AF:4C:C1:2F:34:D9:B1:90:35:XX:XX:XX

      接下来,我们要到Google Map API的主页去申请一个Map的key了,可以访问

      http://code.google.com/android/maps-api-signup.html页面,在其中的MD5 fingerprint一栏中输入刚才生成的MD5密纹,如下图:

    第三步:获得Google Map API Key

      输入后,点Generate API Key,之后会为我们产生Google Map API了,如下图,这个API是我们在程序中可以使用的。

    第三步:获得Google Map API Key

      其中还给出了如何在android中使用该API的方法。


      第四步:开始创建Android Google Map应用

      其实,编写Android Map应用并不复杂,只需要继承MapActivity类就可以了。MapView这个类功能是从Google Map地图中获得数据并且展示地图。MapActivity的主要功能有:

      1) 管理Activity的生命周期

      2) 为MapView类建立和撤消相关的服务。

      在继承了MapActivity类后,我们要实现其中的isRouteDisplayed方法,这个方法其实是用来表示我们是否显示一些路线的信息,这个通常用在地图的飞行模式时才使用,这里我们不提供任何信息仅是返回false即可。

      在我们的activity中,我们将引用到MapView,它是在界面xml中定义的。同时我们也用到setBuiltInZoomControls方法设置地图允许缩放模式。

      初步的代码是这样的:

    package com.javacodegeeks.android.googlemaps;

    import android.os.Bundle;

    import com.google.android.maps.MapActivity;
    import com.google.android.maps.MapView;

    public class GMapsActivity extends MapActivity {
        
        
    private MapView mapView;
        
        @Override
        
    public void onCreate(Bundle savedInstanceState) {
            
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            
            mapView 
    = (MapView) findViewById(R.id.map_view);       
            mapView.setBuiltInZoomControls(
    true);
            
        }

        @Override
        protected 
    boolean isRouteDisplayed() {
            return 
    false;
        }
        
    }
    而相应的界面xml文件如下:
    <?xml version="1.0" encoding="utf-8"?>

    <RelativeLayout 
    xmlns:android
    ="http://schemas.android.com/apk/res/android"
    android:orientation
    ="vertical" 
    android:layout_width
    ="fill_parent"
    android:layout_height
    ="fill_parent">

    <com.google.android.maps.MapView
      xmlns:android
    ="http://schemas.android.com/apk/res/android"
      android:id
    ="@+id/map_view"
      android:layout_width
    ="fill_parent" 
      android:layout_height
    ="fill_parent"
      android:clickable
    ="true" 
      android:enabled
    ="true" 
      android:apiKey
    ="API-KEY-HERE" />
       
    </RelativeLayout>

     

      注意,其中要把你获得的Google Map的API KEY写到MapView控件中去。最后,记得在AndroidManifest.xml配置文件中,加上对Internet和Map的使用访问权限,其中由于Google Map的API是另外提供的API,因此也需要使用use-library标签进行说明,如下代码所示。

    <?xml version="1.0" encoding="utf-8"?>

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package
    ="com.javacodegeeks.android.googlemaps"
          android:versionCode
    ="1"
          android:versionName
    ="1.0">
          
        
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        
            
    <activity android:name=".GMapsActivity"
                      android:label
    ="@string/app_name">
                
    <intent-filter>
                    
    <action android:name="android.intent.action.MAIN" />
                    
    <category android:name="android.intent.category.LAUNCHER" />
                
    </intent-filter>
            
    </activity>
            
          
    <uses-library android:name="com.google.android.maps" />
          
        
    </application>

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

    </manifest> 

      运行程序,可以得到一个初步的地图,如下图所示:

  • 相关阅读:
    12.3
    团队项目第一阶段冲刺第一天
    4.22
    4.21 re重要功能
    12.1
    12.2
    4.17
    4.16
    css设置子元素相对于父元素保持位置不变(含有滚动条的父元素)
    git操作和npm操作清单
  • 原文地址:https://www.cnblogs.com/csj007523/p/2063360.html
Copyright © 2011-2022 走看看