I am looking to implement a web map of property boundaries and owner information. The parcel data (property boundaries) is updated infrequently, but the assessment data is updated weekly, as properties are bought and sold. What are the best practices to cache a somewhat dynamic, large data set?

Here's a list of some of the features I'd like to show on the map:

  • Shape (infrequently changes)
  • Pin (infrequent)
  • Physical address (infrequent)
  • Current owner (frequent)
  • Last sale information (frequent)

I am wondering what the best solution would be to caching the vector features:

  • Cached vector features, with key and physical location information as the only attributes. Upon interaction in the web map, make a second call to load the current owner/sales information. Would need to regenerate the cache when the parcel/boundary data is updated.
  • Cached vector features, but with all desired information. Would need to regenerate weekly, or create a process to only regenerate tiles where new information was made available.
  • Another alternative is to not cache, but already seems foolish, rendering the property boundaries from scratch every request seems wasteful, even though some attributes of the features change week by week.

Does anyone have experience with vector tiling to help me decide? Anyone have good experience or examples of using a static tile map and loading attributes using a second call? I'm using a Linux/PostGIS server to host this application.


you might want to have a look at https://github.com/mapbox/tilelive-decorator

This allows you to update properties of vector tile features dynamically from Redis, but I am sure you can implement it with an other data source. This should fit quite well with your use case.

Underneath it uses https://www.npmjs.com/package/tile-decorator to do the actual work on vector tile features.

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.