一、简介

二、代码
1.xml
(1)main.xml

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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
android:id="@+id/mapViewId"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:enabled="true"
android:clickable="true"
android:apiKey="0pkT0EYxPi2VZ5beDaJ0g08aCtWGmKTFnOvj6iw"
/>
</LinearLayout>

(2)AndroidManifest.xml

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

2.java
(1)MainActivity.java

 package com.se7en;

 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.MapView;
import com.google.android.maps.Overlay;
import com.google.android.maps.OverlayItem; public class MainActivity extends MapActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
MapView mapView = (MapView)findViewById(R.id.mapViewId);
//设置mapView显示用于缩放的工具条
mapView.setBuiltInZoomControls(true); Drawable drawable = getResources().getDrawable(R.drawable.index);
FirstOverlay firstOverlay = new FirstOverlay(drawable,this);
//创建一个GeoPoint对象,用于通过经纬度指定地图上的一个点
GeoPoint point = new GeoPoint(19240000,-99120000);
//创建一个OverlayItem对象,代表图层上的一个标记
OverlayItem overlayItem = new OverlayItem(point,"hola,mundo!","I'm in china!");
firstOverlay.addOverlay(overlayItem); //调用MapView对象的getOverlays(),得到所有的图层对象
List<Overlay> mapOverlays = mapView.getOverlays();
mapOverlays.add(firstOverlay);
} @Override
protected boolean isRouteDisplayed() {
// TODO Auto-generated method stub
return false;
}
}

(2)FirstOverlay.java

 package com.se7en;

 import java.util.ArrayList;

 import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.graphics.drawable.Drawable; import com.google.android.maps.ItemizedOverlay;
import com.google.android.maps.OverlayItem; /**
* 在MapView之上创建一个图层,需要创建一个类,实现Overlay,并生成该类的对象,然后将该对象添加到MapView.getOverlays()中;
* 一个overlayItem对象就代表了一个在地图上显示的标记
* @author se7en
*
*/
public class FirstOverlay extends ItemizedOverlay<OverlayItem>{
//创建一个List对象,用于持有该图层当中所有的标记对象
private ArrayList<OverlayItem> overlayItems = new ArrayList<OverlayItem>();
private Context context; public FirstOverlay(Drawable defaultMaker) {
super(boundCenter(defaultMaker));
} /**
* @param defaultMaker 指定标记所使用的默认图片
* @param context
*/
public FirstOverlay(Drawable defaultMaker,Context context) {
//boundCenter(defaultMaker):将要标记的经纬度点放在defaultMaker的正下方
super(boundCenter(defaultMaker));
this.context = context;
} //用于将生成好的overlayItem对象添加到List当中
public void addOverlay(OverlayItem overlayItem){
overlayItems.add(overlayItem);
//为新添加进来的overlayItem统一执行相关的操作(具体待考证。。。)
populate();
} //用于创建一个OverlayItem对象
@Override
protected OverlayItem createItem(int i) {
// TODO Auto-generated method stub
return overlayItems.get(i);
} //返回当前的Overlay当中所包含的overlayItem对象
@Override
public int size() {
// TODO Auto-generated method stub
return overlayItems.size();
} //当用户点击标记执行的操作
@Override
public boolean onTap(int index) {
OverlayItem item = overlayItems.get(index);
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle(item.getTitle());
builder.setMessage(item.getSnippet());
Dialog dialog = builder.create();
dialog.show();
return true;
} }

ANDROID_MARS学习笔记_S03_008_GOOGLEMAP2的更多相关文章

  1. ANDROID_MARS学习笔记_S01_012_RatingBar

    1.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns: ...

  2. ANDROID_MARS学习笔记_S01_012_SeekBar

    1.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns: ...

  3. ANDROID_MARS学习笔记_S01_011ProgressBar

    文档是这样来设置样式 <ProgressBar android:layout_width="wrap_content" android:layout_height=" ...

  4. ANDROID_MARS学习笔记_S01_010日期时间控件

    1.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns: ...

  5. ANDROID_MARS学习笔记_S01_009Relative_LAYOUT例子

    1. <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android ...

  6. ANDROID_MARS学习笔记_S01_008Linear_layout例子

    1.netstone_layout.xml <?xml version="1.0" encoding="utf-8"?> <LinearLay ...

  7. ANDROID_MARS学习笔记_S01_007Linear_layout嵌套与layout_weight的设置

    一.介绍 二.1.linear_layout.xml <?xml version="1.0" encoding="utf-8"?> <Line ...

  8. ANDROID_MARS学习笔记_S01_006ImageView

    一.ImageView介绍 设置scalType Must be one of the following constant values. Constant Value Description ma ...

  9. ANDROID_MARS学习笔记_S01_005CheckBox

    一. 1.checkbox_layout.xml <?xml version="1.0" encoding="utf-8"?> <Linear ...

随机推荐

  1. %s 与 %0s在 verilog中的区别

    what is different between %s and %0s?(%s和%零s) %s prints the string as it is with spaces at the begin ...

  2. 无法启动调试--未安装 Silverlight Developer 运行时。请安装一个匹配版本。

    引自:http://www.cnblogs.com/chillsrc/archive/2010/06/28/1766816.html 安装完VS2010中文版之后,又安装了Silverlight4_T ...

  3. JAVA的instanceOf什么时候用啊

    当你拿到一个对象的引用时(例如参数),你可能需要判断这个引用真正指向的类.所以你需要从该类继承树的最底层开始, 使用instanceof操作符判断,第一个结果为true的类即为引用真正指向的类. cl ...

  4. 关于ASPOSE.WORD使用上的一个小问题

    最近实习期间负责了公司某个项目的一个功能模块里面的word导出功能,使用的是ASPOSE.WORD类库,但是经常导出时候会遇到图中的问题,大概意思就是两个表格不能跨在一起,调试了好几次还是没发现具体的 ...

  5. c# winform实现网页上用户自动登陆,模拟网站登录

    using System; using System.Collections.Generic; using System.Text; using System.Net; using System.IO ...

  6. MP4(一)-结构

    http://blog.csdn.net/zhuweigangzwg/article/details/17222951 一.基本概念 1.mp4概述 MP4文件中的所有数据都装在box(QuickTi ...

  7. DLL使用总结

    最近项目中使用到了DLL,因此就把最近一段时间的学习总结一下,以备不时之需. 一.相关概念 1.动态链接库 自从微软推出第一个版本的Windows操作系统以来,动态链接库(DLL)一直是Windows ...

  8. 使用CLK.AspNet.Identity提供以角色为基础的访问控制(RBAC)

    使用CLK.AspNet.Identity提供以角色为基础的访问控制(RBAC) 程序代码下载 程序代码下载:点此下载 前言 ASP.NET Identity是微软所贡献的开源项目,用来提供ASP.N ...

  9. HOW TO: Creating your MSI installer using Microsoft Visual Studio* 2008

    Quote from: http://software.intel.com/en-us/articles/how-to-creating-your-msi-installer-using-visual ...

  10. 第3章文件I/O总结

    1. open和create函数在fcntl.h中,close.lseek.read.write函数在unistd.h中 open函数通过进程有效用户ID判断读文件的权限 可以调用access函数判断 ...