Page 1 of 2

Hide Markers in different function

Posted: Wed Jul 16, 2014 8:11 am
by adith visnu

Hi Appery!

when i adding markers, it places in another function between add and hiding markers.

i've tried use "setVisible(false)" and "setMap(null)" when try to hiding all markers. but there were error. undefinied function on it.

any suggest?

Thank you


Hide Markers in different function

Posted: Wed Jul 16, 2014 10:55 am
by Evgene Karachevtsev

Hell Adith,

Could you please give us step-by-step instruction how do you add these markers?


Hide Markers in different function

Posted: Thu Jul 17, 2014 1:14 am
by adith visnu

Hi evgene, we met again here. lol

I have a button. The button is like toogle button, on off conditions.
Its invoke 2 services when ON CONDITION:

The steps are:

1) Invoke one database service(list) is for search data from collection.

2) On success event from first collections, it's invoking database(list) for retrieve data from another collections. On this service, I use to show the markers, which marker's data are set from this database service. And it done. Markers shown

*i didn't use array for store the data

When markers shown, button condition is on. But when it clicked again, it change condition to off.
In OFF CONDITION, i want to clear this map.

if my answer is makes you feel confuse. maybe its makes you clear about this problem.

1)
Image

2) Image

3) Image

4) Image

5) i want to clear this marker on button like toogle
Image


Hide Markers in different function

Posted: Thu Jul 17, 2014 5:44 am
by Evgene Karachevtsev

Adith,

You should save all the handles to the array. Then you will be able to show or hide them at any time


Hide Markers in different function

Posted: Thu Jul 17, 2014 5:48 am
by adith visnu

Hi evgene,

Can i hide or show the markers if the array placed in another function? ?


Hide Markers in different function

Posted: Thu Jul 17, 2014 7:28 am
by adith visnu

var id_dev = localStorage.getItem('id_device');

var kondisi = localStorage.getItem("kondisiTrack");
//alert(kondisi);

if (kondisi == 'off') {
untukTrack.execute({
"data": {"where": '{"idPenambah":"' + id_dev + '"}'},
success: function(data) {
var dariStorage = localStorage.getItem('pinYangSudahDiTrack');
var dataPin = JSON.parse(dariStorage);
var arrayPin = [];

Code: Select all

         for (var i = 0, j = dataPin.length; i < j; i++) { 
             console.log(dataPin[i].idYangDiTrack); 
             arrayPin.push(dataPin[i].idYangDiTrack); 
         } 

         var kondisiWhere = {"PIN": {"$in": arrayPin}}; 
         localStorage.setItem('pinYangSudahDiTrack', ''); 

         track.execute({ 
             "data": {"where": JSON.stringify(kondisiWhere)}, 
             success: function(data) { 
                 var ambilLokasi = localStorage.getItem('lokasi'); 
                 var ubahJsonLokasi = JSON.parse(ambilLokasi); 
                 var marker; 

                 var array = []; 

                 for (var i = 0, j = ubahJsonLokasi.length; i < j; i++) { 
                     marker = new google.maps.Marker({ 
                         position: new google.maps.LatLng(ubahJsonLokasi[i].Latitude, ubahJsonLokasi[i].Longtitude), 
                         animation: google.maps.Animation.BOUNCE, 
                         map: Appery("maps").gmap 
                     }); 
                     array.push(i); 
                 } 
             } 
         }); 

     } 
 }); 

 Appery('track').text("STOP"); 
 localStorage.setItem("kondisiTrack", 'on'); 

} else {
Appery('track').text("TRACK");
localStorage.setItem("kondisiTrack", 'off');
//Appery('marker').setVisible(false);
//I WANT to HIDE MARKERs HERE
}

Appery('track').refresh();
console.log(localStorage.getItem("kondisiTrack"));


Hide Markers in different function

Posted: Thu Jul 17, 2014 8:47 pm
by Kateryna Grynko

Hi Adith,

1) I would recommend that you make the array with markers global, so it is available in any function.

2) If I understand you correctly, you created an array 'array' for markers. You should save there markers instead of index "i". Please replace:prearray&#46;push(i);/preWith:prearray&#46;push(marker); /pre3) Use this code to hide markers:prefor (var j = 0, len = array&#46;length; j < len; j++) {
array[j]&#46;setVisible[false];
}/pre


Hide Markers in different function

Posted: Fri Jul 18, 2014 1:31 am
by adith visnu

hi Katya!.
but when i want to know the array value, its an error : "Uncaught SyntaxError: Unexpected end of input"
i use an alert on

for (var i = 0, j = ubahJsonLokasi.length; i < j; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(ubahJsonLokasi.Latitude, ubahJsonLokasi.Longtitude),
animation: google.maps.Animation.BOUNCE,
map: Appery("maps").gmap
});
arrayMarker.push(marker); //add into global array
}
alert(arrayMarker); //show the value that stored before


Hide Markers in different function

Posted: Fri Jul 18, 2014 2:42 am
by adith visnu

for (var j = 0, len = array.length; j < len; j++) {
array[j].setVisible[false]; // error here
}

expected an assignment or function call and instead saw an expression.


Hide Markers in different function

Posted: Fri Jul 18, 2014 3:28 am
by adith visnu

update

var id_dev = localStorage.getItem('id_device');

var kondisi = localStorage.getItem("kondisiTrack");

if (kondisi == 'off') {
untukTrack.execute({
"data": {
"where": '{"idPenambah":"' + id_dev + '"}'
},
success: function(data) {
var dariStorage = localStorage.getItem('pinYangSudahDiTrack');
var dataPin = JSON.parse(dariStorage); //ERROR LINE
var arrayPin = [];

Code: Select all

         for (var i = 0, j = dataPin.length; i < j; i++) { 
             console.log(dataPin[i].idYangDiTrack); 
             arrayPin.push(dataPin[i].idYangDiTrack); 
         } 

         var kondisiWhere = { 
             "PIN": { 
                 "$in": arrayPin 
             } 
         }; 
         localStorage.setItem('pinYangSudahDiTrack', ''); 

         track.execute({ 
             "data": { 
                 "where": JSON.stringify(kondisiWhere) 
             }, 
             success: function() { 
                 var ambilLokasi = localStorage.getItem('lokasi'); 
                 var ubahJsonLokasi = JSON.parse(ambilLokasi); 
                 var marker; 

                 for (var i = 0, j = ubahJsonLokasi.length; i < j; i++) { 
                     marker = new google.maps.Marker({ 
                         position: new google.maps.LatLng(ubahJsonLokasi[i].Latitude, ubahJsonLokasi[i].Longtitude), 
                         animation: google.maps.Animation.BOUNCE, 
                         map: Appery("maps").gmap 
                     }); 
                     arrayMarker.push(marker); 
                 } 
             } 
         }); 

     } 
 }); 

 Appery('track').text("STOP"); 
 localStorage.setItem("kondisiTrack", 'on'); 

} else {
arrayMarker = [];
Appery('track').text("TRACK");
localStorage.setItem("kondisiTrack", 'off');
}

Appery('track').refresh();
console.log(localStorage.getItem("kondisiTrack"));

//ERROR LINE message :
Uncaught SyntaxError: Unexpected end of input VM1127:485
untukTrack.execute.success VM1127:485
fire jquery-1.9.1.js:1037
self.fireWith jquery-1.9.1.js:1148
done jquery-1.9.1.js:8074
callback