是什么导致maps.googleapis.com/maps/vt返回400错误?

问题描述:

我目前正在使用具有Fusion Table Layer的Google Map。通过这张地图,我制作了填充地图的AJAX查询以及包含结果的列表。是什么导致maps.googleapis.com/maps/vt返回400错误?

最近出现了一个问题,Google Map API响应会返回400个“格式错误的请求”错误。当过滤器设置并通过AJAX发送后,当映射使用新的结果集填充时,此响应偶尔会发生。在检查Firefox的调试控制台错误时,我注意到pb参数可能是问题。问题是我不确定这个参数的错误信息。

这里的GET请求的错误了:

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

我贴我看到分配给下面的PB参数。这是在发生“无效”查询之一时发送的内容。

"!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" 

这里是没有URL编码仅供参考查询:

  • 确保任何查询字符串发送到:

    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 
    

    我到目前为止所采取解决这个问题的步骤已使用URL编码发送Fusion Tables。

  • 确保检查我的引号和引号,并确保发送的查询中没有任何杂散的内容。
  • 检查了我的Google Map init参数,以确保我没有输入任何拼写错误或添加任何不存在的参数。

在确保格式不正确的内容不被发送时,我是否还有其他任何预防措施?

+0

GET请求记录在哪里? – MrUpsidown

+0

我不确定。我尝试过搜索,看看是否有任何文档,并且我没有找到任何具体的内容。到目前为止,我唯一知道的是,它似乎是Google发出的一个响应,要求刷新或重新加载地图或其图层。 – Kiwithing

+0

我已经结束了与Google的联系,并提出了他们的支持建议。我有一些开发人员看到了这个问题,有些人说这可能与字符/查询长度有关,另一些人则表示,问题发生的时间并没有真正的模式,其他人在解决问题时一直存在问题。 – Kiwithing

我遇到了同样的问题。这是在地图结果的融合表层上的CSS不与地图参数对齐时导致的。我修复了CSS,地图开始出现。

我通过打开Chrome开发人员工具并转至:应用程序>清除存储>清除站点数据来解决此问题。然后,在开发人员工具仍处于打开状态的情况下,单击并按住浏览器左上角的刷新按钮,直到您看到“清空缓存和硬重新加载”。点击它,你很好。

+0

当浏览器中的gmaps加载地图图块时,这肯定适用于我,但是在填充DOM的其他区域之后,地图图块会消失。切换到卫星视图加载这些瓷砖,但覆盖失踪等。完全缓存清除如上所述的完美工作,并在登录地图再次工作。 – alexleonard

+0

这正是我的问题,并在这里完全提到。谢谢! – xbeta