मेरे पास एक JSON फ़ाइल है:

[
  {
    "id": 1,
    "city": "Milan",
    "availability": true,
    "lat": 45.4655,
    "long": 9.1865,
    "marker": "example.png"
  },
  {
    "id": 2,
    "city": "Berlin",
    "availability": true,
    "lat": 52.520008,
    "long": 13.404954,
    "marker": "example.png"
  },
  {
    "id": 3,
    "city": "Paris",
    "availability": false,
    "lat": 48.864716,
    "long": 2.349014
  }
]

अब तक क्या होता है यदि किसी शहर में "availability": true है तो "marker" JSON फ़ाइल के भीतर मेरे मानचित्र पर दिखाई देता है। हालांकि अन्य शहर जिनके पास "availability": false हैं, वे मेरे मानचित्र पर Google मानचित्र लाल मार्कर दिखा रहे हैं, जब मैं नहीं चाहता कि कोई मार्कर "availability": false दिखाए।

यह मेरा अब तक का कोड है:

var map;
function initialize() {

var mapOptions = {
    center: new google.maps.LatLng(52.520008, 13.404954),
    disableDefaultUI: true,
    zoom: 2
};

map = new google.maps.Map(document.getElementById("map"), mapOptions);

$.getJSON('example.com', function(data) { 
            $.each(data, function(i, value) {
                var myLatlng = new google.maps.LatLng(value.lat, value.long);
                var marker = new google.maps.Marker({
                position: myLatlng,
                icon: value.marker,
                map: map
               });
          });
     });
}      

"availability": false वाले शहर से इन Google मानचित्र लाल मार्करों को निकालने के बारे में कोई मदद बहुत अच्छी होगी। अग्रिम में धन्यवाद।

2
RH2019 4 फरवरी 2020, 22:20

2 जवाब

सबसे बढ़िया उत्तर

लूप में मान की जांच करें, आपको मार्कर असाइन किए गए चर की भी आवश्यकता नहीं है, यह वैसे भी लूप में खो जाता है।

$.getJSON('example.com', function (data) {
    $.each(data, function (i, value) {
        // Don't create a marker if field is false
        if (value.availability === false) {
            return;
        }

        // No variables used
        new google.maps.Marker({
            position: new google.maps.LatLng(value.lat, value.long),
            icon: value.marker,
            map: map
        });
    });
});
2
Daniel W. 4 फरवरी 2020, 22:26
const filtered = data.filter(item => item.availability);
$.each(filtered, function(i, value) {
    var myLatlng = new google.maps.LatLng(value.lat, value.long);
    var marker = new google.maps.Marker({
    position: myLatlng,
    icon: value.marker,
    map: map
  });
 });
0
Bill Metcalf 4 फरवरी 2020, 22:23