高德AMAP SDK使用

高德AMAP SDK使用

本來以爲能能接一個地圖類的火,結果對方只與公司合作,把前期過程放這做個記錄吧

Androidsudio 加入AMAP SDK

http://lbs.amap.com/api/android-sdk/guide/create-project/android-studio-create-project

效果圖

這裏寫圖片描述

源碼

public class MapActivity extends AppCompatActivity {

    AMap aMap;
    CheckBox indoorEnable;
    Button addMarker;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_map);

        MapView mapView = (MapView) findViewById(R.id.map);
        mapView.onCreate(savedInstanceState);// 此方法必須重寫
        aMap = mapView.getMap();
        setUpMap();

        indoorEnable = (CheckBox) findViewById(R.id.indoor);
        indoorEnable.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener(){
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if(isChecked){
                    aMap.showIndoorMap(true);
                }else{
                    aMap.showIndoorMap(false);
                }
            }
        });

        addMarker = (Button)findViewById(R.id.addmarker);
        addMarker.setOnClickListener(new Button.OnClickListener() {
            @Override
            public void onClick(View arg0) {
                EditText latitudeEdit = (EditText)findViewById(R.id.latitude);
                EditText longitudeEdit = (EditText)findViewById(R.id.longitude);
                String latitudeStr = latitudeEdit.getText().toString();
                String longitudeStr = longitudeEdit.getText().toString();
                if (latitudeStr != null && longitudeStr != null) {
                    aMap.clear();

                    aMap.moveCamera(CameraUpdateFactory.newCameraPosition(new CameraPosition(
                            new LatLng(Double.parseDouble(latitudeStr), Double.parseDouble(longitudeStr)),
                            aMap.getCameraPosition().zoom,
                            aMap.getCameraPosition().bearing,
                            aMap.getCameraPosition().tilt)));

                    String str = "添加 經度:" + latitudeStr + "緯度:" + longitudeStr;
                    Toast.makeText(MapActivity.this, str, Toast.LENGTH_LONG).show();
                    addMarkerToMap(Double.parseDouble(latitudeStr), Double.parseDouble(longitudeStr));

                }
            }
        });

        //addMarkerToMap(39.9476478239,116.3946533203);
    }
    /**
     * 設置一些amap的屬性
     */
    private void setUpMap() {
        // 自定義系統定位藍點
        //MyLocationStyle myLocationStyle = new MyLocationStyle();
        // 自定義定位藍點圖標
        //myLocationStyle.myLocationIcon(BitmapDescriptorFactory.
                //fromResource(R.drawable.gps_point));
        // 自定義精度範圍的圓形邊框顏色
        //myLocationStyle.strokeColor(STROKE_COLOR);
        //自定義精度範圍的圓形邊框寬度
        //myLocationStyle.strokeWidth(2);
        // 設置圓形的填充顏色
        //myLocationStyle.radiusFillColor(FILL_COLOR);
        // 將自定義的 myLocationStyle 對象添加到地圖上
        //aMap.setMyLocationStyle(myLocationStyle);

        //aMap.setLocationSource(this);// 設置定位監聽
        //aMap.getUiSettings().setMyLocationButtonEnabled(true);// 設置默認定位按鈕是否顯示
        aMap.setOnMarkerDragListener(new AMap.OnMarkerDragListener() {
            List<LatLng> latLngs = new ArrayList<LatLng>();
            Polyline polyline;
            @Override
            public void onMarkerDragStart(Marker marker) {//長按拖動開始
                //logText.setText("開始得到經緯度");
                latLngs.add(new LatLng(marker.getPosition().latitude,marker.getPosition().longitude));
            }

            @Override
            public void onMarkerDrag(Marker marker) {
                //拖動中
                //logText.setText("經:" + marker.getPosition().latitude + "-緯:" + marker.getPosition().longitude);
                latLngs.add(new LatLng(marker.getPosition().latitude,marker.getPosition().longitude));
                polyline =aMap.addPolyline(new PolylineOptions().addAll(latLngs).width(10).color(Color.argb(255, 1, 1, 1)));
            }

            @Override
            public void onMarkerDragEnd(Marker marker) {
                //拖動結束
                //logText.setText("經:" + marker.getPosition().latitude + "-緯:" + marker.getPosition().longitude);
                latLngs.add(new LatLng(marker.getPosition().latitude,marker.getPosition().longitude));
                polyline =aMap.addPolyline(new PolylineOptions().addAll(latLngs).width(10).color(Color.argb(255, 1, 1, 1)));
                latLngs.clear();
            }
        });
        //aMap.setMyLocationEnabled(true);// 設置爲true表示顯示定位層並可觸發定位,false表示隱藏定位層並不可觸發定位,默認是false
    }

    private void addMarkerToMap(double jingdu, double weidu) {
        LatLng latLng = new LatLng(jingdu, weidu);
        Marker marker = aMap.addMarker(new MarkerOptions().position(latLng).title("位置1"));
        marker.setDraggable(true);
        //marker.showInfoWindow();
        //marker.setRotateAngle(30);
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章