6

Ich verwende derzeit eine Google Map mit einem Fusion Table Layer. Mit dieser Map mache ich AJAX-Abfragen, die die Karte bevölkern, und eine Liste mit Ergebnissen.Was bewirkt, dass maps.googleapis.com/maps/vt einen Fehler von 400 zurückgibt?

Kürzlich gab es ein Problem mit der Google Map API-Antwort, die als Fehler 400 "Malformed Request" zurückgegeben wurde. Diese Reaktion tritt sporadisch auf, wenn die Karte mit einer neuen Ergebnismenge gefüllt wird, nachdem Filter festgelegt und über AJAX gesendet wurden. Als ich den Fehler der Debugging-Konsole von Firefox auscheckte, bemerkte ich, dass der pb-Parameter das Problem sein könnte. Das Problem ist, dass ich unsicher bin, was genau an diesem Parameter falsch ist.

Hier ist die GET-Anfrage, die Fehler aus:

https://maps.googleapis.com/maps/vt?pb=[...insert_param_code_here...]&callback=_xdc_._n2pwun&token=20077 

klebte ich, was ich sehe unten an der pb Parameter zugeordnet. Dies wird gesendet, wenn eine der 'ungültigen' Abfragen durchgeführt wird.

"!1m4!1m3!1i13!2i2042!3i3139!1m4!1m3!1i13!2i2043!3i3139!1m4!1m3!1i13!2i2042!3i3140!1m4!1m3!1i13!2i2042!3i3141!1m4!1m3!1i13!2i2043!3i3140!1m4!1m3!1i13!2i2043!3i3141!1m4!1m3!1i13!2i2042!3i3142!1m4!1m3!1i13!2i2042!3i3143!1m4!1m3!1i13!2i2043!3i3142!1m4!1m3!1i13!2i2043!3i3143!1m4!1m3!1i13!2i2044!3i3139!1m4!1m3!1i13!2i2045!3i3139!1m4!1m3!1i13!2i2046!3i3139!1m4!1m3!1i13!2i2044!3i3140!1m4!1m3!1i13!2i2044!3i3141!1m4!1m3!1i13!2i2045!3i3140!1m4!1m3!1i13!2i2045!3i3141!1m4!1m3!1i13!2i2044!3i3142!1m4!1m3!1i13!2i2044!3i3143!1m4!1m3!1i13!2i2045!3i3142!1m4!1m3!1i13!2i2045!3i3143!1m4!1m3!1i13!2i2046!3i3140!1m4!1m3!1i13!2i2046!3i3141!1m4!1m3!1i13!2i2046!3i3142!1m4!1m3!1i13!2i2046!3i3143!2m21!1e2!2sft:tableID!4m2!1ssg!2s%20Cities_With_Charters%20%3D%20'East%20St.%20Louis%20Area'%20AND%20Students_Served%20LIKE%20'%25'%20AND%20School_Type_Dropdown%20IN%20('Charter')%20ORDER%20BY%20School_Name%20ASC!4m2!1ssc!2sSchool_Info_ID%2C%20CPS_ID%2C%20RCDTS%2C%20School_Name%2C%20Street_Address%2C%20City%2C%20State%2C%20Zip%2C%20Phone%2C%20Website%2C%20Lat%2C%20Long%2C%20Year_Opened%2C%20School_Description%2C%20District_Info_ID%2C%20District_Name%2C%20Charter_Renew_YR%2C%20Network_ID%2C%20Network%2C%20Community_Area%2C%20State_Rep_District%2C%20State_Sen_District%2C%20Ward_Remapped%2C%20Grades_Served%2C%20Grades_Capacity%2C%20Serves_ES%2C%20Serves_HS%2C%20Serves_MS%2C%20Serves_Dropouts%2C%20School_Type_Dropdown%2C%20School_Type_Color%2C%20School_Type_Display%2C%20Profile_Type%2C%20SQRP_Rating%2C%20SQRP_Profile%2C%20Cities_With_Charters%2C%20Link_IIRC%2C%20Students_Served!4m2!1ssq!2s'School_Type_Color'%20%3D%20'GREEN'$'School_Type_Color'%20%3D%20'ORANGE'$'School_Type_Color'%20%3D%20'BLUE'$'School_Type_Color'%20%3D%20'MAGENTA'!4m2!1sc!2si:grn_blank$i:orange_blank$i:ltblu_blank$i:purple_blank!4m2!1sy!2s2!4m2!1stmplt!2s2!5i1!3m3!2sen-US!3sUS!5e18!4e3!12m1!5b1" 

Hier ist die Abfrage, ohne URL-Codierung nur als Referenz:

SELECT School_Info_ID, CPS_ID, RCDTS, School_Name, Street_Address, City, State, Zip, Phone, Website, Lat, Long, Year_Opened, School_Description, District_Info_ID, District_Name, Charter_Renew_YR, Network_ID, Network, Community_Area, State_Rep_District, State_Sen_District, Ward_Remapped, Grades_Served, Grades_Capacity, Serves_ES, Serves_HS, Serves_MS, Serves_Dropouts, School_Type_Dropdown, School_Type_Color, School_Type_Display, Profile_Type, SQRP_Rating, SQRP_Profile, Cities_With_Charters, Link_IIRC, Students_Served FROM tableID WHERE Cities_With_Charters = 'East St. Louis Area' AND Students_Served LIKE '%' AND School_Type_Dropdown IN ('Charter') ORDER BY School_Name ASC 

Die Schritte, die ich bisher gemacht habe, dies zu beheben:

  • sicher zu machen jede Abfrage-String gesendet Fusion Tables wurde mit URL-Codierung gesendet.
  • Stellen Sie sicher, dass Sie meine Anführungszeichen und Anführungszeichen überprüfen, und stellen Sie sicher, dass in der gesendeten Abfrage keine verirrten Elemente vorhanden waren.
  • Meine Google Map-Initialisierungsparameter überprüft, um sicherzustellen, dass ich keine Tippfehler mache oder nicht vorhandene Parameter hinzufüge.

Gibt es noch andere Vorsichtsmaßnahmen ich dafür, dass fehlerhafte Inhalt fehlt bin nicht gesendet?

+0

Wo wird die GET-Anforderung dokumentiert? – MrUpsidown

+0

Ich bin mir nicht sicher. Ich habe versucht, zu suchen, ob es bereits Dokumente gibt, und ich habe nichts Bestimmtes gefunden. Das Einzige, was ich bisher weiß, ist, dass es von Google als Reaktion auf das Auffrischen oder Neuladen einer Karte oder ihrer Layer gesendet wurde. – Kiwithing

+0

Ich habe mich am Ende mit Google in Verbindung gesetzt und einen Fehlerbericht auf Anregung seiner Unterstützung eingereicht. Ich hatte einige Kollegen, die sich das ansehen, und einige sagten, dass es etwas mit der Länge der Zeichen/Abfragen zu tun hat. Andere sagten, dass es kein wirkliches Muster gibt, wenn das Problem auftritt. Andere hatten Probleme, das Problem konsistent zu reproduzieren . – Kiwithing

Antwort

0

Ich stieß auf das gleiche Problem. Es wird verursacht, wenn das CSS auf der Seite für die Kartenergebnisse mit Fusionstabellenebenen nicht mit den Kartenparametern übereinstimmt. Ich reparierte das CSS und die Karten begannen zu erscheinen.

10

Ich löste dies, indem ich Chrome Developer Tools öffne und zu: Anwendung> Speicher löschen> Standortdaten löschen. Klicken Sie dann mit den noch geöffneten Entwickler-Tools auf die Aktualisierungsschaltfläche in der oberen linken Ecke des Browsers und halten Sie sie gedrückt, bis die Wörter "Cache leeren und Neu laden" angezeigt werden. Klicken Sie darauf, und Sie können loslegen.

+0

Dies funktioniert sicherlich für mich, wenn Gmaps im Browser Kartenkacheln laden würden, aber nach dem Auffüllen anderer Bereiche des DOM würden die Kartenkacheln verschwinden.Beim Wechsel zur Satellitenansicht wurden diese Kacheln geladen, aber Overlays fehlten usw. Der volle Cache, wie oben beschrieben, funktionierte einwandfrei und auf den Karten funktioniert es wieder. – alexleonard

+0

Das war genau mein Problem und wurde genau hier angesprochen. Vielen Dank! – xbeta