0

Check the demo here: http://unirazz.com/cartodb/cartodb1.html After map is loaded, click on GO button to load cartodb layers. It works in latest browsers excepts IE8-10. If I reduce the length of request then it loads fine otherwise it failed. As per documentation I found that cartodb automatically sends POST request if the length of GET is large. In case of IE8-10 its always using the GET request no matter whats the size of request is.

Also I Found that as on IE8-10 there is limited support of CORS that could be also the cause that layers are not loading correctly.

How can fix it?

The code is simple, just loading layers like this

layer.getSubLayer(0).setSQL("SELECT * FROM cartodb2 where zcta5ce10 in ('" + blueZips.join("','") + "')");
        layer.getSubLayer(1).setSQL("SELECT * FROM cartodb2 where zcta5ce10 in ('" + redZips.join("','") + "')");
        layer.getSubLayer(2).setSQL("SELECT * FROM cartodb2 where zcta5ce10 in ('" + greenZips.join("','") + "')");
1

This could be caused by a known issue due to the length of the request, which is limited by those browsers. In order to avoid this issue, you could:

  • Try reducing the CartoCSS code or the number of elements filtered in the zipcodes.
  • Try using several layers instead of sublayers: this way the request of the layergroup will be shorter

I think this last approach woould be the best one, as perhaps reducing the zipcodes is not something possible unless they have all a common part that would allow you to reduce the query, like:

SELECT * FROM tablename WHERE zipcode = '112%'

instead of:

SELECT * FROM tablename WHERE zipcode in ('11201', '11202', '11203', ...)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.