package com.demo.android.trainstation;
import java.util.ArrayList;
import java.util.List;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.ItemizedOverlay;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
import com.google.android.maps.MyLocationOverlay;
import com.google.android.maps.Overlay;
import com.google.android.maps.OverlayItem;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.ViewGroup;
import android.widget.Toast;
public class TrainStation extends MapActivity {
protected static final int MENU_TAIPEI = Menu.FIRST;
protected static final int MENU_BEIJING = Menu.FIRST+1;
protected static final int MENU_SHANGHAI = Menu.FIRST+2;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
findViews();
setupMap();
}
private MapView map;
private MapController controller;
private MyLocationOverlay mylayer;
private LandMarkOverlay marklayer;
// private ViewGroup zoom;
private void findViews(){
map = (MapView) findViewById(R.id.map);
controller = map.getController();
// zoom = (ViewGroup) findViewById(R.id.zoom);
// zoom.addView(map.getZsoomControls());
}
private void setupMap(){
// GeoPoint station_taipei = new GeoPoint(
// (int)(25.047192*1000000),
// (int)(121.516981*1000000)
// );
// map.setTraffic(true);
map.setBuiltInZoomControls(true);
// controller.setZoom(17);
// controller.animateTo(station_taipei);
List<Overlay> overlays = map.getOverlays();
mylayer = new MyLocationOverlay(this, map);
mylayer.runOnFirstFix(new Runnable(){
public void run(){
map.setTraffic(true);
controller.setZoom(17);
controller.animateTo(mylayer.getMyLocation());
}
});
overlays.add(mylayer);
Drawable pin = getResources().getDrawable(android.R.drawable.btn_star_big_on);
pin.setBounds(0, 0, pin.getMinimumWidth(), pin.getMinimumHeight());
marklayer = new LandMarkOverlay(pin);
overlays.add(marklayer);
}
@Override
protected boolean isRouteDisplayed() {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
menu.add(0, MENU_TAIPEI, 0, "台北");
menu.add(0, MENU_BEIJING, 0, "北京");
menu.add(0, MENU_SHANGHAI, 0, "上海");
return super.onCreateOptionsMenu(menu);
}
GeoPoint station_taipei = new GeoPoint(
(int)(25.047192*1000000),
(int)(121.516981*1000000)
);
GeoPoint station_beijing = new GeoPoint(
(int)(39.928416*1000000),
(int)(116.139729*1000000)
);
GeoPoint station_shanghai = new GeoPoint(
(int)(31.251000*1000000),
(int)(121.457000*1000000)
);
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
super.onOptionsItemSelected(item);
switch(item.getItemId()){
case MENU_TAIPEI:controller.animateTo(station_taipei);
break;
case MENU_BEIJING:controller.animateTo(station_beijing);
break;
case MENU_SHANGHAI:controller.animateTo(station_shanghai);
break;
}
return super.onOptionsItemSelected(item);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if (keyCode == KeyEvent.KEYCODE_I) {
controller.setZoom(Math.min(map.getMaxZoomLevel(), map.getZoomLevel() + 1));
return true;
}else if (keyCode == KeyEvent.KEYCODE_O) {
controller.setZoom(Math.max(15, map.getZoomLevel() - 1));
return true;
}else if (keyCode == KeyEvent.KEYCODE_S) {
map.setSatellite(true);
map.setTraffic(true);
return true;
}else if (keyCode == KeyEvent.KEYCODE_T) {
map.setSatellite(false);
map.setTraffic(true);
return true;
}
return super.onKeyDown(keyCode, event);
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
mylayer.enableMyLocation();
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
mylayer.disableMyLocation();
}
private class LandMarkOverlay extends ItemizedOverlay<OverlayItem> {
private List<OverlayItem> items = new ArrayList<OverlayItem>();
public LandMarkOverlay(Drawable defaultMarker) {
super(defaultMarker);
// TODO Auto-generated constructor stub
items.add(
new OverlayItem(
station_taipei,
"台北",
"台北火车站"
)
);
items.add(
new OverlayItem(
station_beijing,
"北京",
"北京火车站"
)
);
items.add(
new OverlayItem(
station_shanghai,
"上海",
"上海火车站"
)
);
populate();
}
@Override
protected OverlayItem createItem(int i) {
// TODO Auto-generated method stub
return items.get(i);
}
@Override
public int size() {
// TODO Auto-generated method stub
return items.size();
}
protected boolean onTap(int pIndex){
Toast.makeText(TrainStation.this, "这里是" + items.get(pIndex).getSnippet(),
Toast.LENGTH_SHORT).show();
return true;
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
TrainStation.zip (24个子文件)
TrainStation
.project 848B
default.properties 378B
bin
com
demo
android
trainstation
R$string.class 460B
R$layout.class 427B
TrainStation$LandMarkOverlay.class 2KB
R$drawable.class 433B
TrainStation.class 5KB
TrainStation$1.class 1KB
R.class 608B
R$attr.class 373B
R$id.class 442B
TrainStation.apk 16KB
resources.ap_ 11KB
classes.dex 7KB
proguard.cfg 1KB
AndroidManifest.xml 959B
src
com
demo
android
trainstation
TrainStation.java 5KB
res
values
strings.xml 175B
layout
main.xml 747B
drawable-ldpi
icon.png 2KB
drawable-hdpi
icon.png 4KB
drawable-mdpi
icon.png 3KB
.classpath 280B
gen
com
demo
android
trainstation
R.java 793B
assets
共 24 条
- 1
资源评论
- darouwan2013-02-13还不错的 就是有点简单吧~~~
yxmsw2007
- 粉丝: 3
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功