package com.example.mapdemo02;
import java.util.ArrayList;
import java.util.List;
import com.baidu.location.BDLocation;
import com.baidu.location.BDLocationListener;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
import com.baidu.mapapi.SDKInitializer;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.BaiduMap.OnMarkerClickListener;
import com.baidu.mapapi.map.BitmapDescriptor;
import com.baidu.mapapi.map.BitmapDescriptorFactory;
import com.baidu.mapapi.map.InfoWindow;
import com.baidu.mapapi.map.InfoWindow.OnInfoWindowClickListener;
import com.baidu.mapapi.map.MapStatusUpdate;
import com.baidu.mapapi.map.MapStatusUpdateFactory;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.map.Marker;
import com.baidu.mapapi.map.MarkerOptions;
import com.baidu.mapapi.map.MyLocationConfiguration;
import com.baidu.mapapi.map.MyLocationConfiguration.LocationMode;
import com.baidu.mapapi.map.MyLocationData;
import com.baidu.mapapi.map.OverlayOptions;
import com.baidu.mapapi.model.LatLng;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
MapView mMapView;//百度地图控件
BaiduMap mBaiduMap;//地图图层
TextView textView_findCourier;//UI显示其他标识点
BitmapDescriptor bitmap_otherPoint;//标识点图片
long backTime;//系统退出时间
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.activity_main);
}
@Override
protected void onStart() {
super.onStart();
mMapView = (MapView) findViewById(R.id.bmapView);
mBaiduMap = mMapView.getMap();
showCourierPoint();//显示标志点
showInfoWindow();//显示详情窗
}
//点击显示详情窗
private void showInfoWindow() {
OnMarkerClickListener marker_Listener = new OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
//在显示新信息窗之前,先关闭已经在显示的信息窗
mBaiduMap.hideInfoWindow();
//显示信息窗
View infoWindow_view = getLayoutInflater().inflate(R.layout.item_infowindow, null);
TextView textView_item_infoWindow = (TextView) infoWindow_view.findViewById(R.id.textView_item_infoWindow);
//如果显示窗是要用自定义的view,则最外层可直接用UI控件或者layout,如果外层用layout来布局,那么布局中一定要有UI控件,否则BitmapDescriptorFactory.fromView(view);会报空指针
// Bundle bundle = marker.getExtraInfo();
// textView_item_infoWindow.setText(bundle.getString("name"));
textView_item_infoWindow.setText("MAP");
BitmapDescriptor infoWindow_bitmap = BitmapDescriptorFactory.fromView(infoWindow_view);
//信息窗点击处理事件
Log.d("tag", "infoWindow_view="+infoWindow_view);
Log.d("tag", "infoWindow_bitmap="+infoWindow_bitmap);
OnInfoWindowClickListener infoWindow_ClickListener = new OnInfoWindowClickListener() {
@Override
public void onInfoWindowClick() {
// TODO Auto-generated method stub
mBaiduMap.hideInfoWindow();
}
};
//定义信息窗
InfoWindow infoWindow = new InfoWindow(infoWindow_bitmap,//信息窗布局
marker.getPosition(), //信息窗的点
100, //信息窗与点的位置关系
//infoWindow监听器
infoWindow_ClickListener
);
//显示信息窗
mBaiduMap.showInfoWindow(infoWindow);
return true;
}
};
//地图设置marker的点击事件
mBaiduMap.setOnMarkerClickListener(marker_Listener);
}
//点击获取标志点的位置并显示
private void showCourierPoint() {
bitmap_otherPoint = BitmapDescriptorFactory.fromResource(R.drawable.point_blue);
textView_findCourier = (TextView) findViewById(R.id.textView_findCourier);
OnClickListener textView_findCourier_OnClickListener = new OnClickListener() {
@Override
public void onClick(View v) {
LatLng p01 = new LatLng(22.654249, 114.07256);
LatLng p02 = new LatLng(22.614249, 114.03256);
LatLng p03 = new LatLng(22.654249, 114.02256);
OverlayOptions Overlay_p01 = new MarkerOptions().position(p01).icon(bitmap_otherPoint);
OverlayOptions Overlay_p02 = new MarkerOptions().position(p02).icon(bitmap_otherPoint);
OverlayOptions Overlay_p03 = new MarkerOptions().position(p03).icon(bitmap_otherPoint);
lists_OverlayOptions.add(Overlay_p01);
lists_OverlayOptions.add(Overlay_p02);
lists_OverlayOptions.add(Overlay_p03);
mBaiduMap.addOverlays(lists_OverlayOptions);
}
};
textView_findCourier.setOnClickListener(textView_findCourier_OnClickListener);
}
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
mMapView.onResume();
super.onResume();
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
mMapView.onPause();
super.onPause();
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
mMapView.onDestroy();
mMapView = null;
super.onDestroy();
}
@Override
public void onBackPressed() {
if (System.currentTimeMillis()-backTime<2000) {
finish();
}else {
backTime = System.currentTimeMillis();
Toast.makeText(MainActivity.this, "再按一次退出", Toast.LENGTH_SHORT).show();
}
}
}