Android高德地图点击大头针更换大头针图片

今天领导提了个需求,就是地图上的大头针太过密集的时候,点哪个大头针不清楚,需要我把大头针更换个图片或者把原来的大头针变大来区别到底点击的是哪个。
需求来了就开始完成需求吧,因为对安卓真的不熟悉,加上安卓的API看着真是费劲,压根没有iOS那样有明确的备注,哪个方法是干什么的,哪个参数代表什么意思,我只能上网搜了,结果搜了半天全是不相干的东西,真是尼玛蛋的,一群鸟人,无力吐槽,靠自己吧。
点击前的效果图
Android高德地图点击大头针更换大头针图片_第1张图片
点击后大头针的效果图
Android高德地图点击大头针更换大头针图片_第2张图片
这样就实现了点击大头针的时候更换大头针的效果。
第一步先要在地图上添加大头针,下面是代码。

MarkerOptions markerOptions = new MarkerOptions();

            LatLng sourceLatLng = new LatLng(Double.valueOf(paieInfo.latitude), Double.valueOf(paieInfo.longitude));

            markerOptions.position(

            new LatLng(desLatLng.latitude, desLatLng.longitude));
            markerOptions.title(paieInfo.name);
            markerOptions.draggable(true);
            BitmapFactory.Options options = new BitmapFactory.Options();
            options.outHeight = 5;
            options.outWidth = 5;
            Bitmap bit = BitmapFactory.decodeResource(getResources(), R
                    .drawable.electricize_icon, options);

            BitmapDescriptor bitmapDescriptor = BitmapDescriptorFactory
                    .fromBitmap(bit);

            markerOptions.icon(bitmapDescriptor);

            Marker marker = aMap.addMarker(markerOptions);
            marker.setObject(paieInfo);

然后是点击大头针的点击方法

@Overridepublic boolean onMarkerClick(final Marker marker) {
//这个方法是设置被点击marker更换图片,也就是上面图片点击大头针之后图片变大来做区别。   marker.setIcon(BitmapDescriptorFactory.fromResource(R.drawable.electricize_icon1));
currentMarker = marker;
}

第三步就是点击地图把大头针的图片换成原来的图片

@Overridepublic void onMapClick(LatLng latLng) {
    if (currentMarker != null) {
        currentMarker.hideInfoWindow();
//这个判断是因为地图刚显示出来,如果点击定位的用户蓝点,会把蓝点变成自己设置的大头针图标,判断的思路是 把点击过后marker 经纬度 和 当前定位用户的经纬度进行对比,如果相等,点击的就是用户的蓝点,如果不是就把大头针的图标变成原来的图片。if (Double.valueOf(((PaieInfo) currentMarker.getObject()
        ).latitude) == startPoaint.latitude) {

        } else {
            currentMarker.setIcon(BitmapDescriptorFactory.fromResource(R
                    .drawable.electricize_icon));
        }
    }
}

这三步就是 添加大头针到地图-> 点击大头针更换大头针图片-> 点击地图在换成大头针之前的图片

在开发过程中遇到了一个情况,至今没有解决,就是添加大头针之后我如果点击大头针会从底部弹出一个视图,这没有问题,但是当我点击定位用户的蓝点时候也会弹出,这让我很苦恼,搜了半天也看了文档没有发现有什么可以判断的,目前的解决方案就是等请求到数据以后在弹出底部视图,如果有哪位大神知道解决办法的,请下面留言,谢谢,博客写的不好,多担待。

你可能感兴趣的:(android开发)