[英]How to set validation of marker's color in android (Google Map API)
因此,我想基於標記的顏色設置驗證。
首先,這是我的標記循環代碼,因此它將顯示標記(這不是主要問題,此代碼有效)
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));
}
}
然后,從這些圖標中,我想基於這些顏色進行驗證,因此我想在這里進行設置(也將算法放進去):
@Override
public boolean onMarkerClick(final Marker marker) {
linCard.setVisibility(View.VISIBLE);
//mapSettings.setMyLocationButtonEnabled(false);
linCard.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//IF marker's color is RED
//Statement
//IF marker's color is YELLOW
//Statement
//IF marker's color is BLUE
//Statement
}
});
而已。 我一直在思考,我對代碼一無所知,有什么想法嗎?
我認為您可以使用標記的標題進行標識,也可以使用Hashmap在其中保存制造商及其相應的信息,例如http://bon-app-etit.blogspot.be/2012/12/add- informationobject-to-marker-in.html
您無需將應用程序邏輯與顏色混合在一起。
您要基於標記類型而不是顏色來執行一些操作。 顏色可以改變。
因此,您需要將其他信息鏈接到標記,例如通過地圖。
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
}
}
});
}
您在此處有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
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.