高德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);
    }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Vue中使用高德SDK可以通过vue-amap插件来实现。以下是一些基本步骤: 1. 首先,通过npm或yarn安装vue-amap插件。可以使用以下命令进行安装: ```bash npm install vue-amap ``` 2. 在main.js文件中引入vue-amap插件: ```javascript import VueAMap from 'vue-amap'; Vue.use(VueAMap); ``` 3. 在Vue组件中使用vue-amap插件。可以在组件的mounted钩子函数中进行初始化和配置。 ```javascript mounted() { // 初始化vue-amap this.initAMapAPI(); }, methods: { initAMapAPI() { // 配置vue-amap VueAMap.initAMapApiLoader({ key: 'your-amap-api-key', plugin: ['AMap.Geolocation'] }); // 加载插件模块 VueAMap .then(() => { // 创建地图对象 const map = new VueAMap.Map('map-container'); // 添加地图控件等操作 // ... // 获取当前位置 this.getCurrentLocation(map); }) .catch(error => { console.log('地图加载失败:', error); }); }, getCurrentLocation(map) { // 使用高德SDK中的定位功能获取当前位置 AMap.plugin('AMap.Geolocation', () => { const geolocation = new VueAMap.Geolocation(); map.addControl(geolocation); geolocation.getCurrentPosition((status, result) => { if (status === 'complete') { // 获取到当前位置信息 console.log('当前位置:', result); } else { // 获取失败 console.log('获取位置失败'); } }); }); } } ``` 通过以上步骤,你就可以在Vue中使用高德SDK了。需要注意的是,在使用过程中要替换'your-amap-api-key'为你自己的高德API密钥。并且根据需求,你还可以添加更多高德SDK的功能和组件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值