`
longgangbai
  • 浏览: 7325776 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Android google map自定义图层

 
阅读更多

      在以前的电子商务项目中,需要在google地图中比较符合用户条件的酒店的位置以及添加相关的说明图层,只是调用google的js实现即可,现在在android开发中可以使用google 的android api实现。

 


keytool -list -alias androiddebugkey -keystore "C:\Documents and Settings\Administrator\.android\debug.keystore" -storepass android -keypass android


Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.

C:\Documents and Settings\Administrator>cd C:\Program Files\Java\jdk1.6.0_14\bin


C:\Program Files\Java\jdk1.6.0_14\bin>keytool -list -alias androiddebugkey -keys
tore debug.keystore -storepass android -keypass android
keytool错误: java.lang.Exception: Keystore文件存在,但为空文件: debug.keystore


C:\Program Files\Java\jdk1.6.0_14\bin>keytool -list -keystore ~/.android/debug.k
eystore
keytool错误: java.lang.Exception: Keystore 文件不存在: ~/.android/debug.keysto
re

C:\Program Files\Java\jdk1.6.0_14\bin>keytool -help
keytool 用法:

-certreq     [-v] [-protected]
             [-alias <别名>] [-sigalg <sigalg>]
             [-file <csr_file>] [-keypass <密钥库口令>]
             [-keystore <密钥库>] [-storepass <存储库口令>]
             [-storetype <存储类型>] [-providername <名称>]
             [-providerclass <提供方类名称> [-providerarg <参数>]] ...
             [-providerpath <路径列表>]

-changealias [-v] [-protected] -alias <别名> -destalias <目标别名>
             [-keypass <密钥库口令>]
             [-keystore <密钥库>] [-storepass <存储库口令>]
             [-storetype <存储类型>] [-providername <名称>]
             [-providerclass <提供方类名称> [-providerarg <参数>]] ...
             [-providerpath <路径列表>]

-delete      [-v] [-protected] -alias <别名>
             [-keystore <密钥库>] [-storepass <存储库口令>]
             [-storetype <存储类型>] [-providername <名称>]
             [-providerclass <提供方类名称> [-providerarg <参数>]] ...
             [-providerpath <路径列表>]

-exportcert  [-v] [-rfc] [-protected]
             [-alias <别名>] [-file <认证文件>]
             [-keystore <密钥库>] [-storepass <存储库口令>]
             [-storetype <存储类型>] [-providername <名称>]
             [-providerclass <提供方类名称> [-providerarg <参数>]] ...
             [-providerpath <路径列表>]

-genkeypair  [-v] [-protected]
             [-alias <别名>]
             [-keyalg <keyalg>] [-keysize <密钥大小>]
             [-sigalg <sigalg>] [-dname <dname>]
             [-validity <valDays>] [-keypass <密钥库口令>]
             [-keystore <密钥库>] [-storepass <存储库口令>]
             [-storetype <存储类型>] [-providername <名称>]
             [-providerclass <提供方类名称> [-providerarg <参数>]] ...
             [-providerpath <路径列表>]

-genseckey   [-v] [-protected]
             [-alias <别名>] [-keypass <密钥库口令>]
             [-keyalg <keyalg>] [-keysize <密钥大小>]
             [-keystore <密钥库>] [-storepass <存储库口令>]
             [-storetype <存储类型>] [-providername <名称>]
             [-providerclass <提供方类名称> [-providerarg <参数>]] ...
             [-providerpath <路径列表>]

-help

-importcert  [-v] [-noprompt] [-trustcacerts] [-protected]
             [-alias <别名>]
             [-file <认证文件>] [-keypass <密钥库口令>]
             [-keystore <密钥库>] [-storepass <存储库口令>]
             [-storetype <存储类型>] [-providername <名称>]
             [-providerclass <提供方类名称> [-providerarg <参数>]] ...
             [-providerpath <路径列表>]

-importkeystore [-v]
             [-srckeystore <源密钥库>] [-destkeystore <目标密钥库>]
             [-srcstoretype <源存储类型>] [-deststoretype <目标存储类型>]
             [-srcstorepass <源存储库口令>] [-deststorepass <目标存储库口令>]
             [-srcprotected] [-destprotected]
             [-srcprovidername <源提供方名称>]
             [-destprovidername <目标提供方名称>]
             [-srcalias <源别名> [-destalias <目标别名>]
               [-srckeypass <源密钥库口令>] [-destkeypass <目标密钥库口令>]]
             [-noprompt]
             [-providerclass <提供方类名称> [-providerarg <参数>]] ...
             [-providerpath <路径列表>]

-keypasswd   [-v] [-alias <别名>]
             [-keypass <旧密钥库口令>] [-new <新密钥库口令>]
             [-keystore <密钥库>] [-storepass <存储库口令>]
             [-storetype <存储类型>] [-providername <名称>]
             [-providerclass <提供方类名称> [-providerarg <参数>]] ...
             [-providerpath <路径列表>]

-list        [-v | -rfc] [-protected]
             [-alias <别名>]
             [-keystore <密钥库>] [-storepass <存储库口令>]
             [-storetype <存储类型>] [-providername <名称>]
             [-providerclass <提供方类名称> [-providerarg <参数>]] ...
             [-providerpath <路径列表>]

-printcert   [-v] [-file <认证文件>]

-storepasswd [-v] [-new <新存储库口令>]
             [-keystore <密钥库>] [-storepass <存储库口令>]
             [-storetype <存储类型>] [-providername <名称>]
             [-providerclass <提供方类名称> [-providerarg <参数>]] ...
             [-providerpath <路径列表>]

 

C:\Program Files\Java\jdk1.6.0_14\bin>keytool -list -alias androiddebugkey -keys
tore "C:\Documents and Settings\Administrator\.android\debug.keystore" -storepas
s android -keypass android
androiddebugkey, 2011-11-22, PrivateKeyEntry,
认证指纹 (MD5): 1E:2E:00:B0:31:C2:5F:80:50:D8:6C:06:D4:46:2F:B1


C:\Program Files\Java\jdk1.6.0_14\bin\keytool -list -alias androiddebugkey -keystore "C:\Documents and Settings\Administrator\.android\debug.keystore" -storepass android -keypass android


keytool -list -alias androiddebugkey -keystore "C:\Documents and Settings\Administrator\.android\debug.keystore" -storepass android -keypass android

 

 

 

 

 

 

package com.easyway.android.ui;

import java.util.List;

import android.graphics.drawable.Drawable;
import android.os.Bundle;

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 com.google.android.maps.Overlay;
import com.google.android.maps.OverlayItem;

/**
 * 实现Google 地图中带自定义的图层的方法
 * 1.
 * @author longgangbai
 *
 */
public class CustomItemizedOverlayActivity extends MapActivity {
    private MapView mapView;
    private   MapController mapController ;
    
    /**
     * 
     */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        
        super.onCreate(savedInstanceState);
        //设置布局
        setContentView(R.layout.main);
        //获取google地图对象
        mapView = (MapView) findViewById(R.id.mapView);
        //设置可以缩放的功能
        mapView.setBuiltInZoomControls(true);
        //获取所有的图层
        List<Overlay> mapOverlays = mapView.getOverlays();
        //获取图片
        Drawable drawable = this.getResources().getDrawable(R.drawable.gps);
        //获取图表
        CustomItemizedOverlay itemizedOverlay = 
             new CustomItemizedOverlay(drawable, this);
       //北京的中心是北纬39度54分26.37秒,东经116度23分29.22秒。国旗基座的位置是北纬39度54分19.97秒,东经116度23分29.34秒。人民英雄纪念碑的位置是北纬39度54分11.40秒,东经116度23分29.88秒
        //设置经纬度
        GeoPoint point= new GeoPoint(39971036, 116314659);
        //创建图层项
        OverlayItem overlayitem = 
             new OverlayItem(point, "Hello", "Welcome to beijing's TianAnMen !");
        
        //添加一个图层项
        itemizedOverlay.addOverlay(overlayitem);
        
        mapOverlays.add(itemizedOverlay);
        //添加图层项目
        mapController = mapView.getController();
        //定位到所要的经纬度
        mapController.animateTo(point);
        //以此经纬度为中心
        mapController.setCenter(point);
        mapController.setZoom(6);
    }
    
  
    @Override
    protected boolean isRouteDisplayed() {
        return true;
    }
    
}

 

 

package com.easyway.android.ui;

import java.util.ArrayList;
import android.app.AlertDialog;
import android.content.Context;
import android.graphics.drawable.Drawable;
import com.google.android.maps.ItemizedOverlay;
import com.google.android.maps.OverlayItem;
/**
 * 
 * 自定义地图的图层
 * 我们需要为地图多增加一些自定义的功能,比如可以在地图上进行一些标注。
 * 为了实现这样的功能,我们可以继承Overlay这个类,这个类是一个基类,提供了
 * 可以在地图上添加图层的基本功能。而另外的选择是,我们可以继承itemzedOverlay这个类,
 * 需要在构造函数中使用Drawable类,这将被用作来绘制一个标记。
 * 此外,我们使用ArrayList
 * 去保存所有的Overlayitems,而createitem和size方法则容易理解了,
 * 分别是返回每一个
 * Overlayitem和返回目前的所有标记的数目。而onTap方法则是在当某个标记在地图上真正标注时
 * 所触发的,比如当在触摸屏上点击时,也可以触发该事件。
 * 
 * 在这个例子中,我们只是通过弹出对
 * 话框的方法展示给用户看。最后,在addOverlay方法中,我们向标记数组mapOverlays中增加
 * 一个overlayitem标记,并且调用populate方法将其展示出来。
 * 
 * @author longgangbai
 *
 */
public class CustomItemizedOverlay extends ItemizedOverlay<OverlayItem> {
   
   private ArrayList<OverlayItem> mapOverlays = new ArrayList<OverlayItem>();
   
   private Context context;
   
   public CustomItemizedOverlay(Drawable defaultMarker) {
        super(boundCenterBottom(defaultMarker));
   }
   
   public CustomItemizedOverlay(Drawable defaultMarker, Context context) {
        this(defaultMarker);
        this.context = context;
   }

   /**
    * 获取当前图层
    */
   @Override
   protected OverlayItem createItem(int i) {
      return mapOverlays.get(i);
   }
   /**
    * 获取当前图层个数
    */
   @Override
   public int size() {
      return mapOverlays.size();
   }
   /**
    * 获取当前图层的提示
    */
   @Override
   protected boolean onTap(int index) {
      OverlayItem item = mapOverlays.get(index);
      AlertDialog.Builder dialog = new AlertDialog.Builder(context);
      dialog.setTitle(item.getTitle());
      dialog.setMessage(item.getSnippet());
      dialog.show();
      return true;
   }
   
   /**
    * 添加图层的方法
    * @param overlay
    */
   public void addOverlay(OverlayItem overlay) {
      mapOverlays.add(overlay);
      this.populate();
   }

}

 

 

 

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.easyway.android.ui"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="10" />
    <!-- 添加访问权限 -->
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>  
    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <!-- 添加google map 的类库 -->
        <uses-library android:name="com.google.android.maps" />  
        
        
        <activity
            android:label="@string/app_name"
            android:name=".CustomItemizedOverlayActivity" >
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

 

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

	 <com.google.android.maps.MapView
	    android:id="@+id/mapView"
	    android:layout_width="fill_parent"
	    android:layout_height="fill_parent"
	    android:enabled="true"
	    android:clickable="true"
	    android:apiKey="0S3Q4ZaVtVDhibBF6eIGl30D9JDmXVdvP4sQvnQ"
	    />  

</LinearLayout>

 

分享到:
评论

相关推荐

    android google地图显示地图图层叠加

    总的来说,Android应用结合Google Maps API可以创建出强大的地图应用,不仅可以显示基础地图,还能根据需求叠加各种自定义图层,提供丰富的用户体验。通过不断学习和实践,你可以掌握更多高级特性,如实时交通信息、...

    google-Map.zip_android_android google map_android map_google map

    压缩包中的"MapDemoLayer"和"MyGoogleMap"可能是示例代码的类名,它们可能包含了具体的地图功能实现,比如自定义图层、覆盖物、事件监听等。这些类会扩展GoogleMap的功能,提供更丰富的交互体验。 8. **性能优化**...

    GoogleMap谷歌地图demo

    在这个案例中,这个demo可能包含了地图加载、定位、路线规划、信息窗口、自定义图层等常见功能。 描述中提到"调用GoogleMap api 实现的功能全面的地图工具",这表示该demo不仅仅是一个简单的示例,而是具备了多种...

    Android GoogleMap教程和实例

    这篇教程“Android GoogleMap教程和实例”旨在帮助初学者快速掌握如何在Android应用中使用Google Maps API,提供了一系列实用的示例代码,使得学习过程更加直观易懂。 1. **获取Google Map API Key** 获取API Key...

    android使用谷歌地图,利用高德地图加载瓦片图层

    本篇将深入探讨如何在Android应用中使用谷歌地图API以及如何利用高德地图的数据资源来加载自定义的瓦片图层。这种技术通常用于显示特定区域的高精度地图、卫星图像或者自定义的地图样式。 首先,我们要了解谷歌地图...

    android google map

    在Android上,我们使用的是Google Play Services中的Google Maps Android API,它提供了丰富的功能,包括显示静态或动态地图、设置自定义图层、获取用户位置、路径规划等。 二、集成Google Maps到Android应用 1. ...

    google map开发经验分享

    总之,Android上的Google Map开发涉及到地图基础设置、自定义图层的创建和基站定位技术的运用。理解并掌握这些知识点,能帮助开发者构建功能丰富的地理位置应用,提供更好的用户体验。在实践中,不断优化和调整,...

    OCL.rar_andriod google map_google map_java google map_map_ocl

    7. **地图处理**:在Android应用中,地图处理可能包括地图的加载、缩放、平移,以及自定义图层、标记和路径绘制等。 综上所述,这个项目可能是一个使用Java编写的Android应用,它利用Google Maps API来显示地图,并...

    Android-GeoJsonify-轻松地将GeoJson图层添加到您的地图

    在Android开发中,通常我们会用到各种地图库,如Google Maps SDK for Android或者OpenStreetMap的Leaflet等。这些库允许开发者在应用程序中展示地图,并添加各种图层,包括点、线和多边形等地理对象。然而,将...

    android map

    7. **地图样式(Map Styles)**: Google Maps API允许自定义地图的视觉样式,可以改变地图的颜色、图层显示等,以满足不同应用场景的需求。 8. **离线地图**: 对于没有网络连接的情况,可以通过下载地图区域实现...

    Android google地图api Demo

    在Android开发中,...这是一个基础的示例,实际开发中可能还需要处理更多复杂情况,如离线地图、自定义图层、路线规划等。通过不断学习和实践,开发者可以熟练地运用Google Maps API为用户提供更加丰富的地图体验。

    GoogleMap开发源码

    对于"GoogleMap开发源码"这个主题,我们可以深入探讨以下几个核心知识点: 1. **Google Maps API**:Google Maps提供JavaScript API、Android API和iOS SDK等,允许开发者在网页、移动应用上显示地图、获取位置信息...

    android移动版GoogleMap

    通过GoogleMap的Directions API,你可以发送请求获取路线信息,然后解析返回的JSON数据,绘制路线图层到地图上。 8. **自定义标记与InfoWindow** 可以通过Marker类创建自定义的标记,设置其位置、图标、标题和内容...

    某培训机构 Google Map 培训代码总结

    总的来说,这篇培训资料涵盖了Android集成Google Map的基本步骤,包括设置地图布局、创建自定义图层以及添加标记。这对于初学者来说是一个很好的起点,可以深入理解如何在Android应用中利用Google Maps API进行地图...

    Android的基于Google Maps的个人移动地图开发

    8. **添加自定义功能**:如路径规划、覆盖物(Marker)、信息窗口(InfoWindow)、覆盖图层(GroundOverlay)等,以实现更多个性化功能。 9. **优化性能**:考虑使用lite模式、离线地图、缓存策略等来提升用户体验...

    Android使用Google Map API创建的一个根据经纬度定位的程序二

    5. **初始化地图**: 在Activity或Fragment的生命周期方法中初始化地图,如`onCreate`或`onActivityCreated`,并调用`getMapAsync`来获取`GoogleMap`对象。 6. **定位权限**: 确保在AndroidManifest.xml中请求了定位...

    android 的Google Maps

    更深入的开发可能涉及到路径规划、实时定位、离线地图、自定义标记图层等。通过不断学习和实践,你可以创建出功能丰富的地图应用。 在"HelloGoogleMaps"这个示例项目中,你将会看到如何逐步实现以上步骤,从而更好...

    GoogleMap地图控件应用源码_googlemapcontrol.zip

    3. 图片/图标资源:可能包含地图标记、自定义图层或其他视觉元素。 4. SDK库或框架文件:如Google Maps JavaScript API库。 5. 后端代码:如果项目涉及到服务器交互,可能包含PHP、Node.js或Python等后端代码。 6. ...

    Google-Maps-2018-displaying-a-google-map-end_map_else82j_android

    - 地图覆盖物(Overlays):自定义图层,如自定义热力图或遮罩层。 - 地图事件监听:响应用户的触摸事件,如点击、拖动等。 - 离线地图:虽然Google Maps本身不直接支持离线地图,但可以通过第三方库实现。 7. *...

Global site tag (gtag.js) - Google Analytics