2016-12-30 5 views
0

Im folgenden Screenshot Sie eine Markierung sehen Plotten Marker markiert Mutter Erde Brauerei, aber es sollte Dogfish Head lesen:Karte Box in der falschen Stelle

enter image description here

Mein Code für meine Karte Box Marker hinzugefügt wird :

var lat; 
      var lng; 

      var markers = []; 
      var markerTemp; 

      for (i = 0; i < data.length; i++) { 
       lat = parseFloat(data[i].lat); 
       lng = parseFloat(data[i].lng); 


       if (lat == "" || lng == "") { 

       } else { 
        L.marker([lat, lng]).addTo(map).bindPopup(data[i].brewery); 
        markerTemp = L.marker([lat, lng]); 
        markers.push(markerTemp); 

        alert("Brewery: " + data[i].brewery + "Lat: " + lat + "Long: " + lng); 

       } 
       var group = L.featureGroup(markers); 

       map.fitBounds(group.getBounds()); 


      } 

die variablen Daten, die unter json geparst wird:

[{"brewery":"East Coast Beer Company","lat":"40.091779","lng":"-74.049265","breweryID":"0BRjKa"},{"brewery":"Ballast Point Brewing Company","lat":"32.766785","lng":"-117.195246","breweryID":"1d90Lc"},{"brewery":"Fulton Brewing Company","lat":"44.9849423","lng":"-93.2790206","breweryID":"5GoGSi"},{"brewery":"Stone Brewing Co.","lat":"33.115682","lng":"-117.119552","breweryID":"709vEK"},{"brewery":"The Lost Abbey","lat":"33.141417","lng":"-117.150076","breweryID":"9x7wNn"},{"brewery":"Dogfish Head Craft Brewery","lat":"38.770622","lng":"-75.310893","breweryID":"g0jHqt"},{"brewery":"Latitude 33 Brewing Co.","lat":"33.1362843","lng":"-117.2244859","breweryID":"GpPbOw"},{"brewery":"Coronado Brewing Company","lat":"32.6977264","lng":"-117.1731838","breweryID":"gVynTw"},{"brewery":"Iron Fist Brewing Company","lat":"33.145823","lng":"-117.238546","breweryID":"hjb9rn"},{"brewery":"Heritage Brewing","lat":"38.7523173","lng":"-77.4887259","breweryID":"LWv6MU"},{"brewery":"Karl Strauss Brewing Company","lat":"32.832461","lng":"-117.2318045","breweryID":"mtUjck"},{"brewery":"Bagby Beer Company","lat":"33.189225","lng":"-117.374257","breweryID":"Nl2U0R"},{"brewery":"Mother Earth Brew Company","lat":"38.770622","lng":"-75.310893","breweryID":"NwFxny"},{"brewery":"Pizza Port Brewing Company","lat":"33.1596505","lng":"-117.3478111","breweryID":"QSVVxD"},{"brewery":"Burley Oak Craft Brewery","lat":"38.3338561","lng":"-75.2169099","breweryID":"rKXfsB"},{"brewery":"Belching Beaver Brewery","lat":"33.1450383","lng":"-117.2285575","breweryID":"rVzPCl"},{"brewery":"San Marcos Brewery & Grill","lat":"33.134539","lng":"-117.190813","breweryID":"SEibYT"},{"brewery":"Union Craft Brewing Company","lat":"39.331938","lng":"-76.641971","breweryID":"t6Gyij"},{"brewery":"Rinn Duin Brewing","lat":"40.123373","lng":"-74.24754","breweryID":"T90yOZ"},{"brewery":"Victory Brewing Company","lat":"40.0061038","lng":"-75.6941546","breweryID":"VoKbnS"},{"brewery":"Heavy Seas","lat":"39.230827","lng":"-76.6751309","breweryID":"wTFQaf"},{"brewery":"Booze Brothers Brewing Co.","lat":"33.148172","lng":"-117.218047","breweryID":"xaBLno"},{"brewery":"Kane Brewing","lat":"40.2368095","lng":"-74.0442545","breweryID":"XqWTM7"},{"brewery":"AleSmith Brewing Company","lat":"32.892034","lng":"-117.144379","breweryID":"ygAzC9"},{"brewery":"Bay City Brewing","lat":"32.7579949","lng":"-117.2118382","breweryID":"yOH4Du"}] 

Im Code können Sie sehen, ich dies

um sicherzustellen, dass die richtigen Werte in die

gingen
markerTemp = L.marker([lat, lng]); 
markers.push(markerTemp); 

ich die richtigen Daten verifiziert wurde über den Alarm in einer nach dem anderen zu gehen und zu vergleichen alert("Brewery: " + data[i].brewery + "Lat: " + lat + "Long: " + lng); hinzugefügt die Ausgabe von JSON. Alles sieht korrekt aus und ich stecke fest, eine zweite Reihe von Augen würde sehr geschätzt werden. Vielen Dank!

Antwort

1

Die letzten zwei Zeilen des Codes sollten außerhalb der for-Schleife liegen. Sie beabsichtigen, alle Markierungen als Gruppe in die Karte einzufügen, was Sie jedoch tun, scheint tatsächlich programmatisch inkorrekt zu sein.

Ich bemerkte, dass der Vergleich einer Gleitkommazahl mit einer Zeichenfolge keine gute Programmierpraxis ist.

var lat; 
var lng; 

var markers = []; 
var markerTemp; 

for (i = 0; i < data.length; i++) { 
    lat = parseFloat(data[i].lat); 
    lng = parseFloat(data[i].lng); 

    if (data[i].lat !== "" && data[i].lng !== "") { 
     markerTemp = L.marker([lat, lng]).addTo(map).bindPopup(data[i].brewery); 
     markers.push(markerTemp); 

     console.log("Brewery: " + data[i].brewery + "Lat: " + lat + "Long: " + lng); 
    } 
} 
var group = L.featureGroup(markers); 
map.fitBounds(group.getBounds()); 
+0

Dank, zog sie aus:

if (lat == "" || lng == "")

Hier habe ich den Code entsprechend geändert. Dennoch behebt ich das Problem nicht, das ich in meiner Frage erwähnt habe. – Mike

+0

Hallo Mike, ich habe bemerkt, dass die beiden Orte, die du oben in deiner Frage erwähnt hast, genau die gleichen Koordinaten in der JSON-Datei haben; daher ist es ganz normal, einen über dem anderen zu sehen. Inzwischen habe ich einen weiteren Fehler im Code gefunden und die modifizierte Version in meine Antwort eingefügt. –

+0

Danke für den Code-Tipp und Yep sah das gleiche lat und lng und fand heraus, wo mein Fehler in meinem sql war Dank! – Mike

Verwandte Themen