Android上的Google Map 开发总结

1. 地图和线的绘制

本章设计到的源码请从下面的位置下载

相关文件下载在安科网的1号FTP服务器里,下载地址:

密码:www.muu.cc

下载方法见 http://www.linuxidc.net/thread-1187-1-1.html

1.1 地图上绘制一个Logo

1.2 实现动态的位置回放的功能【动态更新GPS位置】

2. 获取公交线路

Android目前的SDK版本中, 不存在绘制公交线路的API, 正因为如此, 我们需要采用比较原始的方式,Android Google Map 轨迹回放源码, 可以用Google Map实现gps动态导航的功能。

package com.ostrichmyself;

import java.util.ArrayList;
import java.util.HashMap;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;
import android.widget.SimpleAdapter;

public class MapShow extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
        //load_grid0001();
      super.onCreate(savedInstanceState);
       loadView();
    }
   
   
    /**
     * Grid0001使用方式的代码
     */
    public void loadView()
    {
     setContentView(R.layout.appmain);
     GridView gridview = (GridView) findViewById(R.id.gridview); 
       
        //生成动态数组,并且转入数据 
        ArrayList<HashMap<String, Object>> lstImageItem = new ArrayList<HashMap<String, Object>>();
       
       
        HashMap<String, Object> map = new HashMap<String, Object>(); 
        map.put("ItemImage", R.drawable.service_maintenance);//添加图像资源的ID 
        map.put("ItemText", "Map 展示");//按序号做ItemText 
        lstImageItem.add(map);
       
        map = new HashMap<String, Object>(); 
        map.put("ItemImage", R.drawable.service_ebusiness);//添加图像资源的ID 
        map.put("ItemText", "自动回放");//按序号做ItemText 
        lstImageItem.add(map);
       
        //生成适配器的ImageItem <====> 动态数组的元素,两者一一对应 
        SimpleAdapter saImageItems = new SimpleAdapter(this, //没什么解释 
                                                  lstImageItem,//数据来源  
                                                  R.layout.appmain_inneritem,//night_item的XML实现 
                                                   
                                                  //动态数组与ImageItem对应的子项         
                                                  new String[] {"ItemImage","ItemText"},  
                                                   
                                                  //ImageItem的XML文件里面的一个ImageView,两个TextView ID 
                                                  new int[] {R.id.itemImage,R.id.itemText}); 
        //添加并且显示 
        gridview.setAdapter(saImageItems); 
        //添加消息处理 
        //gridview.setOnClickListener(new ClickListener());
  
        gridview.setOnItemClickListener(new ItemClickListener());
    }
   
   
   
   
 
   
    /**
     * 监听事件
     * @author tiant5
     *
     */
    class ItemClickListener implements OnItemClickListener{

  public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
   
   if (arg2 == 0)
   {
    Intent intent = new Intent(MapShow.this, DisplayMap.class);
    
    Bundle bundle = new Bundle();
    
    double longitude = Double.valueOf(114.567421);
    double latitude = Double.valueOf(40.491295);
    
    int lat = (int) (latitude * 1E6);
    int lng = (int) (longitude * 1E6);
    
    bundle.putInt(ConstConfiguration.BUDDLE_INT_KEY_LAT, lat);
    bundle.putInt(ConstConfiguration.BUDDLE_INT_KEY_LON, lng);
    
    intent.putExtras(bundle);
    
    
    
    startActivity(intent);
   }
   
   if (arg2 == 1)
   {
    Intent intent = new Intent(MapShow.this, TraceMap.class);
    
    Bundle bundle = new Bundle();
    
    double longitude = Double.valueOf(114.567421);
    double latitude = Double.valueOf(40.491295);
    
    int lat = (int) (latitude * 1E6);
    int lng = (int) (longitude * 1E6);
    
    bundle.putInt(ConstConfiguration.BUDDLE_INT_KEY_LAT, lat);
    bundle.putInt(ConstConfiguration.BUDDLE_INT_KEY_LON, lng);
    
    intent.putExtras(bundle);
    
    
    
    startActivity(intent);
   }
   

  }
    }
}

相关推荐