package com.zhangle.gmt;
import java.util.List;
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 android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Point;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioGroup;
import android.widget.Toast;
import android.widget.RadioGroup.OnCheckedChangeListener;
// 必须继承MapActivity
public class GoogleMapTestActivity extends MapActivity
{
// 定义界面上的的可视化控件
Button locBn;
RadioGroup mapType;
MapView mv;
EditText etLng , etLat;
// 定义MapController对象
MapController controller;
Bitmap posBitmap;
//构造方法(纬度,经度)乘以10的六次方
GeoPoint geoPoint=new GeoPoint((int)(31.38*1E6),(int)(117.5*1000000));
private String text="安徽";
@Override
protected void onCreate(Bundle status)
{
super.onCreate(status);
setContentView(R.layout.main);
// 获得界面上MapView对象
mv = (MapView) findViewById(R.id.mv);
mv.setTraffic(true);//交通模式
mv.setSatellite(true);//卫星模式
mv.setStreetView(true);//街道模式
/*mv.setEnabled(true); 这两个事件可以在配置文件中设置
mv.setClickable(true);*/
// 设置显示放大、缩小的控制按钮
mv.setBuiltInZoomControls(true);
// 创建MapController对象
controller = mv.getController();
//controller.setCenter(geoPoint);设置中
controller.animateTo(geoPoint);//移动到某个点
controller.setZoom(12);//设置缩放尺寸1-21
//定义提示层
LocationOverlay lOverlay=new LocationOverlay();
//在mapview增加显示层
List<Overlay> overlays=mv.getOverlays();
overlays.add(lOverlay);
/*posBitmap = BitmapFactory.decodeResource(getResources(),
R.drawable.pos);
// 获取界面上两个文本框
etLng = (EditText) findViewById(R.id.lng);
etLat = (EditText) findViewById(R.id.lat);
// 获得Button对象
locBn = (Button) findViewById(R.id.loc);
locBn.setOnClickListener(new View.OnClickListener()
{
public void onClick(View source)
{
// 获取用户输入的经度、纬度值
String lng = etLng.getEditableText().toString().trim();
String lat = etLat.getEditableText().toString().trim();
if (lng.equals("") || lat.equals(""))
{
Toast.makeText(GoogleMapTestActivity.this, "请输入有效的经度、纬度!",
Toast.LENGTH_LONG).show();
}
else
{
double dLong = Double.parseDouble(lng);
double dLat = Double.parseDouble(lat);
// 调用方法更新MapView
updateMapView(dLong , dLat);
}
}
});
// 触发按钮的单击事件
locBn.performClick();
// 获得RadioGroup对象
mapType = (RadioGroup) findViewById(R.id.rg);
// 为RadioGroup的选中状态改变添加监听器
mapType.setOnCheckedChangeListener(new OnCheckedChangeListener()
{
public void onCheckedChanged(RadioGroup group, int checkedId)
{
switch(checkedId)
{
case R.id.normal:
mv.setSatellite(false);
break;
case R.id.satellite:
mv.setSatellite(true);
break;
}
}
});*/
}
@Override
protected boolean isRouteDisplayed()
{
return true;
}
public class LocationOverlay extends Overlay {
@Override
public void draw(Canvas canvas, MapView mapView, boolean shadow) {
//坐标转换,把经纬度转换成屏幕坐标
Point point=new Point();
mv.getProjection().toPixels(geoPoint, point);
/**
* 绘制
*/
Paint paint=new Paint();
paint.setARGB(255,255, 0, 0);
paint.setStrokeWidth(1);//设置画笔宽带
paint.setARGB(255,255, 0, 0);
paint.setStyle(Paint.Style.STROKE);
//绘制矩形,知道左上和右下坐标即可
canvas.drawRect(point.x, point.y, point.x+20, point.y+10, paint);
//提示文本
canvas.drawText(text, point.x, point.y+10, paint);
//绘制图片
Bitmap bitmap=BitmapFactory.decodeResource(getResources(), R.drawable.pos);
canvas.drawBitmap(bitmap, point.x,point.y, paint);
}
}
private void updateMapView(double lng, double lat)
{
GeoPoint gp = new GeoPoint((int) (lat * 1E6)
, (int) (lng * 1E6));
mv.displayZoomControls(true);
controller.animateTo(gp);
List<Overlay> ol = mv.getOverlays();
ol.clear();
ol.add(new PosOverLay(gp, posBitmap));
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
调用GoogleMap源码,点击事件在注释里面.zip
共30个文件
class:9个
png:6个
java:3个
0 下载量 105 浏览量
2024-04-19
20:24:08
上传
评论
收藏 83KB ZIP 举报
温馨提示
android 源码学习. 资料部分来源于合法的互联网渠道收集和整理,供大家学习参考与交流。本人不对所涉及的版权问题或内容负法律责任。如有侵权,请通知本人删除。感谢CSDN官方提供大家交流的平台
资源推荐
资源详情
资源评论
收起资源包目录
调用GoogleMap源码,点击事件在注释里面.zip (30个子文件)
调用GoogleMap源码,点击事件在注释里面
GoogleMapTest
project.properties 377B
.classpath 364B
.settings
org.eclipse.jdt.core.prefs 177B
src
com
zhangle
gmt
GoogleMapTestActivity.java 4KB
PosOverLay.java 861B
res
drawable-mdpi
ic_launcher.png 3KB
drawable-ldpi
ic_launcher.png 2KB
values
strings.xml 446B
layout
main.xml 2KB
drawable-hdpi
pos.gif 762B
ic_launcher.png 4KB
bin
classes
com
zhangle
gmt
GoogleMapTestActivity$LocationOverlay.class 2KB
R$string.class 623B
R$layout.class 385B
PosOverLay.class 1KB
R$id.class 541B
GoogleMapTestActivity.class 3KB
R$attr.class 331B
R$drawable.class 425B
R.class 510B
GoogleMapTest.apk 18KB
resources.ap_ 12KB
res
drawable-mdpi
ic_launcher.png 2KB
drawable-ldpi
ic_launcher.png 2KB
drawable-hdpi
ic_launcher.png 4KB
classes.dex 6KB
proguard.cfg 1KB
.project 849B
AndroidManifest.xml 980B
gen
com
zhangle
gmt
R.java 1KB
共 30 条
- 1
资源评论
Soft_Leader
- 粉丝: 754
- 资源: 1629
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 编码解码,(UTF16+UTF32+UTF8+ANSI)获取文本文件编码类型易语言源码
- 课设毕设基于SSM的网络视频播放器-LW+PPT+源码可运行.zip
- 课设毕设基于SSM的农产品供销服务系统-LW+PPT+源码可运行.zip
- 课设毕设基于SSM的高校四六级报名管理系统-LW+PPT+源码可运行.zip
- 课设毕设基于SSM的高校二手交易平台-LW+PPT+源码可运行.zip
- 课设毕设基于SSM的毕业生就业信息管理系统-LW+PPT+源码可运行
- ZodGame.DLL
- 编译原理是什么以及学习了解编译原理的意义
- 0dc10bd6f58239f070aa65979b792057.cpp
- 什么是协同过滤算法以及学习了解协同过滤算法的意义是什么
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功