如何在android(Google Map API)中设置标记颜色的验证

时间:2015-08-26 03:49:18

标签: java android google-maps google-maps-api-3

所以,我想根据标记的颜色设置验证。

首先,这是我的标记循环代码,因此它将显示标记(这不是主要问题,此代码有效)

mod.directive("parenta", function () {
    return {             
    template: "<section><div ng-click='vm.a()'>Rendered by a</div></section>", 
 	replace: false,
 	scope: true , // Isolate scope
 
	 controllerAs: "vm",
	 controller: function () {
     this.a = function () {            	
         console.log("a called!");
         
     }
 }   

然后,从这些图标中,我想根据这些颜色进行验证,所以我想我会在这里设置它(我也把算法放在一起):

for(int i = 0; i < datMarkerList.size(); i++)
    {
        if(i < 50) {
            DAT_MARKER datMarker = datMarkerList.get(i);
            marker = mMap.addMarker(new MarkerOptions()
                    .position(new LatLng(datMarker.getLATITUDE(), datMarker.getLONGITUDE()))
                    .title(datMarker.getDESCRIPTION())
                    .snippet(datMarker.getID_MARKER() + ""));
            markers.add(marker);
        } else {
            continue;
        }

        DAT_MARKER_OP datMarkerOp = datMarkerOpList.get(i);
        if(datMarkerOp.getKODE_PAJAK() == 0) { //KODE PAJAK HOTEL
            marker.setIcon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED));
        }else if(datMarkerOp.getKODE_PAJAK() == 1) { //KODE PAJAK RESTAURANT
            marker.setIcon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_YELLOW));
        }else { //KODE PAJAK HOTEL DAN RESTAURANT
            marker.setIcon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE));
        }
    }

就是这样。我一直在思考,我不知道代码,任何想法?

2 个答案:

答案 0 :(得分:1)

您无需将应用逻辑与颜色混合 你想根据标记类型做一些动作,而不是它的颜色。颜色可以改变。
因此,您需要将其他信息链接到标记,例如通过地图。

Map<Marker,DAT_MARKER_OP> markersMap = new HashMap<>();

在你的标记循环中:

markersMap.put(marker, datMarkerOp);

在此之后,你可以在onClick上获得你的DAT_MARKER_OP

public boolean onMarkerClick(final Marker marker) {
    linCard.setVisibility(View.VISIBLE);
    linCard.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {

            DAT_MARKER_OP datMarkerOp = markersMap.get(marker);
            if(datMarkerOp.getKODE_PAJAK() == 0) {
                // your logic
            }

        }
    });
}

答案 1 :(得分:0)

这里有2个标识符。标题和摘要可以使用其中任何一个来区分标记。例如,为所有红色标记提供id_red,为所有黄色标记提供id_yellow

if(marker.getTitle().toString().equals(id_red )){
        its a red colored marker
 }else{

 } 

您可以将代码段用于相同的内容

 if (marker.getSnippet().contains("id_red")) {
     red
    } else{
    // Click of another colored marker
    }