所以,我想根据标记的颜色设置验证。
首先,这是我的标记循环代码,因此它将显示标记(这不是主要问题,此代码有效)
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));
}
}
就是这样。我一直在思考,我不知道代码,任何想法?
答案 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
}