手机地图画线----可以加上起始位置和终点位置(当前例子没有加)

package com.qiao.baidumap;
 
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.SDKInitializer;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.map.OverlayOptions;
import com.baidu.mapapi.map.PolylineOptions;
import com.baidu.mapapi.model.LatLng;
 
/**
 * baiduMap画线操作
 *
 * @author 有点凉了
 *
 */
public class MainActivity extends Activity {
    MapView mMapView = null;
    BaiduMap mBaiduMap = null;
    // UI相关
    Button resetBtn;
    Button clearBtn;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        // 在使用SDK各组件之前初始化context信息,传入ApplicationContext
        // 注意该方法要再setContentView方法之前实现
        SDKInitializer.initialize(getApplicationContext());
        setContentView(R.layout.activity_main);
        // 初始化地图
        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);
        LatLng p4 = new LatLng(39.96923, 116.367428);
        LatLng p5 = new LatLng(39.95923, 116.368428);
        LatLng p6 = new LatLng(39.95323, 116.362428);
        LatLng p7 = new LatLng(39.95423, 116.363428);
        LatLng p8 = new LatLng(39.95123, 116.364428);
        List<LatLng> points = new ArrayList<LatLng>();
        points.add(p1);
        points.add(p2);
        points.add(p3);
        points.add(p4);
        points.add(p5);
        points.add(p6);
        points.add(p7);
        points.add(p8);
        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);
         */
    }
 
    @Override
    protected void onDestroy() {
        super.onDestroy();
        // 在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理
        mMapView.onDestroy();
    }
 
    @Override
    protected void onResume() {
        super.onResume();
        // 在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理
        mMapView.onResume();
    }
 
    @Override
    protected void onPause() {
        super.onPause();
        // 在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理
        mMapView.onPause();
    }
 
    public void resetClick() {
        // 添加绘制元素
        addCustomElementsDemo();
    }
 
    public void clearClick() {
        // 清除所有图层
        mMapView.getMap().clear();
    }
 
}


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
 
<com.baidu.mapapi.map.MapView
    android:id="@+id/bmapView"
    android:layout_width="fill_parent"
    android:layout_height="410dp"
    android:clickable="true" />
 
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >
 
    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="resetBtn" />
 
    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="clearBtn" />
 
</LinearLayout>
 
</LinearLayout>

需要百度sdk等等,权限啥的,自行到官方查询

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有时有晌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值