Определение точечных цветов в nMap android studio - PullRequest
0 голосов
/ 07 мая 2018

Я создал проект маркера mMap в андроид-студии, где данные подключаются к базе данных с помощью json ..., который я хочу спросить, как указать цветной маркер "если еще" со следующими терминами:

Кен Кен Каран ??

enter image description here 1

это мой код:

//GENERATE DATA MAP
            //Toast.makeText(getApplicationContext(), "Jumlah SIte Id X = "+SITE_ID.size(), Toast.LENGTH_LONG).show();
            for(int i = 0 ; i < SITE_ID.size() ; i++){

                Double lat = Double.parseDouble(LAT.get(i));
                Double longi = Double.parseDouble(LONG.get(i));

            BitmapDescriptor revicon = null;
              double Rev = Double.parseDouble(""+Rev_ALL_month3.get(i)) ;

                if( Rev >= 200000000) {
                    revicon = BitmapDescriptorFactory
                            .fromResource(R.drawable.merah);
                }
                    else if(Rev >= 100000000 && Rev <= 200000000) {
                    revicon = BitmapDescriptorFactory
                            .fromResource(R.drawable.kuning);
                }
                          else if(Rev >=60000000 && Rev <= 100000000) {
                    revicon = BitmapDescriptorFactory
                            .fromResource(R.drawable.biru);
                }
                                  else if(Rev >=30000000 && Rev <= 60000000) {
                    revicon = BitmapDescriptorFactory
                            .fromResource(R.drawable.hijau);
                }
                                      else if(Rev >= 30000000) {
                    revicon = BitmapDescriptorFactory
                            .fromResource(R.drawable.hitam);
                }



                mMap.addMarker(new MarkerOptions()
                        .position(new LatLng(lat,longi))
                        .title(SITE_ID.get(i))
                        .snippet("Data Handset 2G :" +"Des 2017("+Jml_Handset_2G_month1.get(i)+"), Jan 2018("+Jml_Handset_2G_month2.get(i)+"), Feb 2018("+Jml_Handset_2G_month3.get(i)+"), MoM("+Jml_Handset_2G_inc.get(i)+")\n\n"
                                +"Data Handset 3G :" +"Des 2018("+Jml_Handset_3G_month1.get(i)+"), Jan 2018("+Jml_Handset_3G_month2.get(i)+"), Feb 2018("+Jml_Handset_3G_month3.get(i)+"), MoM("+Jml_Handset_3G_inc.get(i)+")\n\n"
                                +"Data Handset 4G :" +"Des 2017("+Jml_Handset_4G_month1.get(i)+"), Jan 2018("+Jml_Handset_4G_month2.get(i)+"), Feb 2018("+Jml_Handset_4G_month3.get(i)+"), MoM("+Jml_Handset_4G_inc.get(i)+")\n\n"


                                +"Revenue Voice :" +"Des 2017("+Rev_Voice_month1.get(i)+"), Jan 2018("+Rev_Voice_month2.get(i)+"), Feb 2018("+Rev_Voice_month3.get(i)+"), MoM("+Rev_Voice_inc.get(i)+")\n\n"
                                +"Revenue SMS :" +"Des 2017("+Rev_SMS_month1.get(i)+"), Jan 2018("+Rev_SMS_month2.get(i)+"), Feb 2018("+Rev_SMS_month3.get(i)+"), MoM("+Rev_SMS_inc.get(i)+")\n\n"
                                +"Revenue Broadband :" +"Des 2017("+Rev_BBand_month1.get(i)+"), Jan 2018("+Rev_BBand_month2.get(i)+"), Feb 2018("+Rev_BBand_month3.get(i)+"), MoM("+Rev_BBand_inc.get(i)+")\n\n"
                                +"Revenue Digital :" +"Des 2017("+Rev_Digital_month1.get(i)+"), Jan 2018("+Rev_Digital_month2.get(i)+"), Feb 2018("+Rev_Digital_month3.get(i)+"), MoM("+Rev_Digital_inc.get(i)+")\n\n"
                                +"Revenue GSM :" +"Des 2017("+Rev_GSM_month1.get(i)+"), Jan 2018("+Rev_GSM_month2.get(i)+"), Feb 2018("+Rev_GSM_month3.get(i)+"), MoM("+Rev_GSM_inc.get(i)+")\n\n"
                                +"Revenue DCS :" +"Des 2017("+Rev_DCS_month1.get(i)+"), Jan 2018("+Rev_DCS_month2.get(i)+"), Feb 2018("+Rev_DCS_month3.get(i)+"), MoM("+Rev_DCS_inc.get(i)+")\n\n"
                                +"Revenue 3G :" +"Des 2017("+Rev_3G_month1.get(i)+"), Jan 2018("+Rev_3G_month2.get(i)+"), Feb 2018("+Rev_3G_month3.get(i)+"), MoM("+Rev_3G_inc.get(i)+")\n\n"
                                +"Revenue IR :" +"Des 2017("+Rev_IR_month1.get(i)+"), Jan 2018("+Rev_IR_month2.get(i)+"), Feb 2018("+Rev_IR_month3.get(i)+"), MoM("+Rev_IR_inc.get(i)+")\n\n"
                                +"Revenue ALL :" +"Des 2017("+Rev_ALL_month1.get(i)+"), Jan 2018("+Rev_ALL_month2.get(i)+"), Feb 2018("+Rev_ALL_month3.get(i)+"), MoM("+Rev_ALL_inc.get(i)+")\n"

                        )




                    .icon(BitmapDescriptorFactory
                        .fromResource(R.drawable.green)));

Снимок экрана:

enter image description here

1 Ответ

0 голосов
/ 09 мая 2018

Одной из рекомендаций является предварительное определение цвета

BitmapDescriptor green=
BitmapDescriptorFactory.fromResource(R.drawable.green); //etc etc


for(int i = 0 ; i < SITE_ID.size() ; i++){
    Double lat = Double.parseDouble(LAT.get(i));
    Double longi = Double.parseDouble(LONG.get(i));
    mMap.addMarker(new MarkerOptions()
                    .position(new LatLng(lat,longi))
                    .title(SITE_ID.get(i))
                    .snippet(" <SNIP... YOUR SNIPPET>" )
                    .icon( ( //ternary operator
                        rev >200_000_000 ? red: 
                        rev >100_000_000 ? yellow:
                        rev > 60_000_000 ? white:
                        rev > 30_000_000 ? green:
                        black  
                    ) );

троичный оператор выберет правильный bitmapDescriptor для использования.

Вы также можете извлечь троичный оператор в свой собственный метод.

private BitmapDescriptor getColor(long rev){
  return  rev >200_000_000 ? red: 
   rev >100_000_000 ? yellow:
   rev > 60_000_000 ? white:
   rev > 30_000_000 ? green:
   black ;
}

затем вызовите метод, используя

    .icon (getColor(rev));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...