package baidumapsdk.demo;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import com.baidu.mapapi.map.ArcOptions;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.CircleOptions;
import com.baidu.mapapi.map.DotOptions;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.map.OverlayOptions;
import com.baidu.mapapi.map.PolygonOptions;
import com.baidu.mapapi.map.PolylineOptions;
import com.baidu.mapapi.map.Stroke;
import com.baidu.mapapi.map.TextOptions;
import com.baidu.mapapi.model.LatLng;
/**
* 此demo用来展示如何在地图上用GraphicsOverlay添加点、线、多边形、圆 同时展示如何在地图上用TextOverlay添加文字
*
*/
public class GeometryDemo extends Activity {
// 地图相关
MapView mMapView;
BaiduMap mBaiduMap;
// UI相关
Button resetBtn;
Button clearBtn;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_geometry);
// 初始化地图
mMapView = (MapView) findViewById(R.id.bmapView);
mBaiduMap = mMapView.getMap();
// UI初始化
clearBtn = (Button) findViewById(R.id.button1);
resetBtn = (Button) findViewById(R.id.button2);
OnClickListener clearListener = new OnClickListener() {
public void onClick(View v) {
clearClick();
}
};
OnClickListener restListener = new OnClickListener() {
public void onClick(View v) {
resetClick();
}
};
clearBtn.setOnClickListener(clearListener);
resetBtn.setOnClickListener(restListener);
// 界面加载时添加绘制图层
addCustomElementsDemo();
}
/**
* 添加点、线、多边形、圆、文字
*/
public void addCustomElementsDemo() {
// 添加折线
LatLng p1 = new LatLng(39.97923, 116.357428);
LatLng p2 = new LatLng(39.94923, 116.397428);
LatLng p3 = new LatLng(39.97923, 116.437428);
List<LatLng> points = new ArrayList<LatLng>();
points.add(p1);
points.add(p2);
points.add(p3);
OverlayOptions ooPolyline = new PolylineOptions().width(10)
.color(0xAAFF0000).points(points);
mBaiduMap.addOverlay(ooPolyline);
// 添加弧线
OverlayOptions ooArc = new ArcOptions().color(0xAA00FF00).width(4)
.points(p1, p2, p3);
mBaiduMap.addOverlay(ooArc);
// 添加圆
LatLng llCircle = new LatLng(39.90923, 116.447428);
OverlayOptions ooCircle = new CircleOptions().fillColor(0x000000FF)
.center(llCircle).stroke(new Stroke(5, 0xAA000000))
.radius(1400);
mBaiduMap.addOverlay(ooCircle);
LatLng llDot = new LatLng(39.98923, 116.397428);
OverlayOptions ooDot = new DotOptions().center(llDot).radius(6)
.color(0xFF0000FF);
mBaiduMap.addOverlay(ooDot);
// 添加多边形
LatLng pt1 = new LatLng(39.93923, 116.357428);
LatLng pt2 = new LatLng(39.91923, 116.327428);
LatLng pt3 = new LatLng(39.89923, 116.347428);
LatLng pt4 = new LatLng(39.89923, 116.367428);
LatLng pt5 = new LatLng(39.91923, 116.387428);
List<LatLng> pts = new ArrayList<LatLng>();
pts.add(pt1);
pts.add(pt2);
pts.add(pt3);
pts.add(pt4);
pts.add(pt5);
OverlayOptions ooPolygon = new PolygonOptions().points(pts)
.stroke(new Stroke(5, 0xAA00FF00)).fillColor(0xAAFFFF00);
mBaiduMap.addOverlay(ooPolygon);
// 添加文字
LatLng llText = new LatLng(39.86923, 116.397428);
OverlayOptions ooText = new TextOptions().bgColor(0xAAFFFF00)
.fontSize(24).fontColor(0xFFFF00FF).text("百度地图SDK").rotate(-30)
.position(llText);
mBaiduMap.addOverlay(ooText);
}
public void resetClick() {
// 添加绘制元素
addCustomElementsDemo();
}
public void clearClick() {
// 清除所有图层
mMapView.getMap().clear();
}
@Override
protected void onPause() {
mMapView.onPause();
super.onPause();
}
@Override
protected void onResume() {
mMapView.onResume();
super.onResume();
}
@Override
protected void onDestroy() {
mMapView.onDestroy();
super.onDestroy();
}
}