'cluster' as type,
          'case4 tile' AS log,
          location estimated_geometric_location,
          St_asgeojson(location) centroid,
          St_asgeojson(location) latlon,
          count,
          CASE WHEN count > 1000
          THEN  (count / 1000) || 'K'
          ELSE count || ''
          END AS count_text,
          NULL as zoom_to
          FROM clusters
          WHERE zoom_level = 14

handle geojson...
get query
xml length: 371338
cache bingo!
ll: [ 3888128, 3997440 ]
ur: [ 3888384, 3997184 ]
ll + buffer: [ 3888028, 3997540 ]
use global data set
ur + buffer: [ 3888484, 3997084 ]
init map with settings: {
  zoom_level: 15,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}
cache bingo!
sql:
          /* case4 tile */
          SELECT
          id,
          'cluster' as type,
          'case4 tile' AS log,
          location estimated_geometric_location,
          St_asgeojson(location) centroid,
          St_asgeojson(location) latlon,
          count,
          CASE WHEN count > 1000
          THEN  (count / 1000) || 'K'
          ELSE count || ''
          END AS count_text,
          NULL as zoom_to
          FROM clusters
          WHERE zoom_level = 14

handle geojson...
get query
xml length: 371338
ll: [ 3887872, 3997184 ]
ur: [ 3888128, 3996928 ]
ll + buffer: [ 3887772, 3997284 ]
ur + buffer: [ 3888228, 3996828 ]
use global data set
init map with settings: {
  zoom_level: 15,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}
sql:
          /* case4 tile */
          SELECT
          id,
          'cluster' as type,
          'case4 tile' AS log,
          location estimated_geometric_location,
          St_asgeojson(location) centroid,
          St_asgeojson(location) latlon,
          count,
          CASE WHEN count > 1000
          THEN  (count / 1000) || 'K'
          ELSE count || ''
          END AS count_text,
          NULL as zoom_to
          FROM clusters
          WHERE zoom_level = 14

handle geojson...
get query
cache bingo!
xml length: 371338
ll: [ 3886848, 3997952 ]
ur: [ 3887104, 3997696 ]
ll + buffer: [ 3886748, 3998052 ]
ur + buffer: [ 3887204, 3997596 ]
use global data set
init map with settings: {
  zoom_level: 15,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}
sql:
          /* case4 tile */
          SELECT
          id,
          'cluster' as type,
          'case4 tile' AS log,
          location estimated_geometric_location,
          St_asgeojson(location) centroid,
          St_asgeojson(location) latlon,
          count,
          CASE WHEN count > 1000
          THEN  (count / 1000) || 'K'
          ELSE count || ''
          END AS count_text,
          NULL as zoom_to
          FROM clusters
          WHERE zoom_level = 14

handle geojson...
get query
xml length: 371338
cache bingo!
ll: [ 3887360, 3997696 ]
ur: [ 3887616, 3997440 ]
ll + buffer: [ 3887260, 3997796 ]
ur + buffer: [ 3887716, 3997340 ]
use global data set
init map with settings: {
  zoom_level: 15,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}
sql:
          /* case4 tile */
          SELECT
          id,
          'cluster' as type,
          'case4 tile' AS log,
          location estimated_geometric_location,
          St_asgeojson(location) centroid,
          St_asgeojson(location) latlon,
          count,
          CASE WHEN count > 1000
          THEN  (count / 1000) || 'K'
          ELSE count || ''
          END AS count_text,
          NULL as zoom_to
          FROM clusters
          WHERE zoom_level = 14

handle geojson...
get query
cache bingo!
xml length: 371338
ll: [ 3887872, 3997440 ]
ur: [ 3888128, 3997184 ]
ll + buffer: [ 3887772, 3997540 ]
ur + buffer: [ 3888228, 3997084 ]
use global data set
init map with settings: {
  zoom_level: 15,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}
sql:
          /* case4 tile */
          SELECT
          id,
          'cluster' as type,
          'case4 tile' AS log,
          location estimated_geometric_location,
          St_asgeojson(location) centroid,
          St_asgeojson(location) latlon,
          count,
          CASE WHEN count > 1000
          THEN  (count / 1000) || 'K'
          ELSE count || ''
          END AS count_text,
          NULL as zoom_to
          FROM clusters
          WHERE zoom_level = 14

handle geojson...
get query
xml length: 371338
cache bingo!
ll: [ 3887104, 3997184 ]
ur: [ 3887360, 3996928 ]
ll + buffer: [ 3887004, 3997284 ]
ur + buffer: [ 3887460, 3996828 ]
use global data set
init map with settings: {
  zoom_level: 15,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}
sql:
          /* case4 tile */
          SELECT
          id,
          'cluster' as type,
          'case4 tile' AS log,
          location estimated_geometric_location,
          St_asgeojson(location) centroid,
          St_asgeojson(location) latlon,
          count,
          CASE WHEN count > 1000
          THEN  (count / 1000) || 'K'
          ELSE count || ''
          END AS count_text,
          NULL as zoom_to
          FROM clusters
          WHERE zoom_level = 14

handle geojson...
get query
xml length: 371338
cache bingo!
ll: [ 3887104, 3997440 ]
ur: [ 3887360, 3997184 ]
ll + buffer: [ 3887004, 3997540 ]
ur + buffer: [ 3887460, 3997084 ]
use global data set
init map with settings: {
  zoom_level: 15,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}
sql:
          /* case4 tile */
          SELECT
          id,
          'cluster' as type,
          'case4 tile' AS log,
          location estimated_geometric_location,
          St_asgeojson(location) centroid,
          St_asgeojson(location) latlon,
          count,
          CASE WHEN count > 1000
          THEN  (count / 1000) || 'K'
          ELSE count || ''
          END AS count_text,
          NULL as zoom_to
          FROM clusters
          WHERE zoom_level = 14

handle geojson...
get query
cache bingo!
xml length: 371338
ll: [ 3888128, 3997184 ]
ur: [ 3888384, 3996928 ]
ll + buffer: [ 3888028, 3997284 ]
ur + buffer: [ 3888484, 3996828 ]
use global data set
init map with settings: {
  zoom_level: 15,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}
sql:
          /* case4 tile */
          SELECT
          id,
          'cluster' as type,
          'case4 tile' AS log,
          location estimated_geometric_location,
          St_asgeojson(location) centroid,
          St_asgeojson(location) latlon,
          count,
          CASE WHEN count > 1000
          THEN  (count / 1000) || 'K'
          ELSE count || ''
          END AS count_text,
          NULL as zoom_to
          FROM clusters
          WHERE zoom_level = 14

handle geojson...
get query
cache bingo!
xml length: 371338
ll: [ 3887872, 3997696 ]
ur: [ 3888128, 3997440 ]
ll + buffer: [ 3887772, 3997796 ]
ur + buffer: [ 3888228, 3997340 ]
use global data set
init map with settings: {
  zoom_level: 15,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}
sql:
          /* case4 tile */
          SELECT
          id,
          'cluster' as type,
          'case4 tile' AS log,
          location estimated_geometric_location,
          St_asgeojson(location) centroid,
          St_asgeojson(location) latlon,
          count,
          CASE WHEN count > 1000
          THEN  (count / 1000) || 'K'
          ELSE count || ''
          END AS count_text,
          NULL as zoom_to
          FROM clusters
          WHERE zoom_level = 14

handle geojson...
get query
cache bingo!
xml length: 371338
Build map took: 345 15186 15615 15 .png
Build map took: 338 15186 15616 15 .png
Build map took: 341 15187 15615 15 .png
Build map took: 355 15184 15614 15 .png
Build map took: 276 15184 15616 15 .png
Build map took: 305 15185 15616 15 .png
Build map took: 273 15183 15614 15 .png
Build map took: 234 15187 15616 15 .png
Build map took: 222 15188 15614 15 .png
Build map took: 193 15187 15613 15 .png
Build map took: 152 15187 15614 15 .grid
Build map took: 169 15185 15615 15 .grid
Build map took: 221 15183 15616 15 .png
Build map took: 177 15184 15613 15 .grid
Render map took: 44 15187 15614 15 .grid
Render map took: 41 15185 15615 15 .grid
Render map took: 12 15184 15613 15 .grid
Render map took: 148 15186 15615 15 .png
Render map took: 149 15186 15616 15 .png
Render map took: 149 15187 15615 15 .png
Render map took: 152 15184 15614 15 .png
Render map took: 155 15184 15616 15 .png
Render map took: 154 15185 15616 15 .png
Render map took: 124 15183 15614 15 .png
Render map took: 117 15187 15616 15 .png
Render map took: 113 15188 15614 15 .png
Render map took: 108 15187 15613 15 .png
Render map took: 56 15183 15616 15 .png
Build map took: 191 15187 15615 15 .grid
Render map took: 2 15187 15615 15 .grid
Build map took: 211 15184 15614 15 .grid
Render map took: 1 15184 15614 15 .grid
Build map took: 207 15188 15613 15 .grid
Render map took: 1 15188 15613 15 .grid
ll: [ 7774976, 7994880 ]
ur: [ 7775232, 7994624 ]
ll + buffer: [ 7774876, 7994980 ]
ur + buffer: [ 7775332, 7994524 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 16,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

ll: [ 7775232, 7994880 ]
ur: [ 7775488, 7994624 ]
ll + buffer: [ 7775132, 7994980 ]
ur + buffer: [ 7775588, 7994524 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 16,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

ll: [ 7774976, 7995136 ]
ur: [ 7775232, 7994880 ]
ll + buffer: [ 7774876, 7995236 ]
ur + buffer: [ 7775332, 7994780 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 16,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

ll: [ 7774720, 7994880 ]
ur: [ 7774976, 7994624 ]
ll + buffer: [ 7774620, 7994980 ]
ur + buffer: [ 7775076, 7994524 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 16,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

ll: [ 7775488, 7994624 ]
ur: [ 7775744, 7994368 ]
ll + buffer: [ 7775388, 7994724 ]
ur + buffer: [ 7775844, 7994268 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 16,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

ll: [ 7775232, 7994624 ]
ur: [ 7775488, 7994368 ]
ll + buffer: [ 7775132, 7994724 ]
ur + buffer: [ 7775588, 7994268 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 16,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

ll: [ 7775232, 7995392 ]
ur: [ 7775488, 7995136 ]
ll + buffer: [ 7775132, 7995492 ]
ur + buffer: [ 7775588, 7995036 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 16,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

ll: [ 7774720, 7995392 ]
ur: [ 7774976, 7995136 ]
ll + buffer: [ 7774620, 7995492 ]
ur + buffer: [ 7775076, 7995036 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 16,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

ll: [ 7775488, 7995392 ]
ur: [ 7775744, 7995136 ]
ll + buffer: [ 7775388, 7995492 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 16,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

ur + buffer: [ 7775844, 7995036 ]
ll: [ 7775744, 7995392 ]
ur: [ 7776000, 7995136 ]
ll + buffer: [ 7775644, 7995492 ]
ur + buffer: [ 7776100, 7995036 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 16,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

ll: [ 7775744, 7995136 ]
ur: [ 7776000, 7994880 ]
ll + buffer: [ 7775644, 7995236 ]
ur + buffer: [ 7776100, 7994780 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 16,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

Build map took: 76 30372 31229 16 .png
Build map took: 64 30370 31229 16 .png
Build map took: 101 30371 31229 16 .png
Build map took: 75 30371 31230 16 .png
ll: [ 7774720, 7995392 ]
ur: [ 7774976, 7995136 ]
ll + buffer: [ 7774620, 7995492 ]
ur + buffer: [ 7775076, 7995036 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 16,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

Build map took: 192 30373 31228 16 .png
Build map took: 202 30372 31231 16 .png
Build map took: 306 30372 31228 16 .png
Build map took: 306 30370 31231 16 .png
Build map took: 302 30374 31231 16 .png
Build map took: 328 30373 31231 16 .png
Build map took: 443 30374 31230 16 .grid
ll: [ 10210816, 8628480 ]
ur: [ 10211072, 8628224 ]
ll + buffer: [ 10210716, 8628580 ]
ur + buffer: [ 10211172, 8628124 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 16,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

ll: [ 10211072, 8627712 ]
ur: [ 10211328, 8627456 ]
ll + buffer: [ 10210972, 8627812 ]
ur + buffer: [ 10211428, 8627356 ]
ll: [ 10212352, 8627456 ]
ur: [ 10212608, 8627200 ]
ll + buffer: [ 10212252, 8627556 ]
ur + buffer: [ 10212708, 8627100 ]
ll: [ 10211584, 8628480 ]
ur: [ 10211840, 8628224 ]
ll + buffer: [ 10211484, 8628580 ]
ur + buffer: [ 10211940, 8628124 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 16,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 16,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 16,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

ll: [ 10212352, 8628224 ]
ur: [ 10212608, 8627968 ]
ll + buffer: [ 10212252, 8628324 ]
ur + buffer: [ 10212708, 8627868 ]
ll: [ 10211072, 8627712 ]
ur: [ 10211328, 8627456 ]
ll + buffer: [ 10210972, 8627812 ]
ur + buffer: [ 10211428, 8627356 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 16,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 16,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

ll: [ 10211584, 8628480 ]
ur: [ 10211840, 8628224 ]
ll + buffer: [ 10211484, 8628580 ]
ur + buffer: [ 10211940, 8628124 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 16,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

ll: [ 10211840, 8628224 ]
ur: [ 10212096, 8627968 ]
ll + buffer: [ 10211740, 8628324 ]
ur + buffer: [ 10212196, 8627868 ]
ll: [ 10210304, 8628480 ]
ur: [ 10210560, 8628224 ]
ll + buffer: [ 10210204, 8628580 ]
ur + buffer: [ 10210660, 8628124 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 16,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 16,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

ll: [ 10211072, 8628480 ]
ur: [ 10211328, 8628224 ]
ll + buffer: [ 10210972, 8628580 ]
ur + buffer: [ 10211428, 8628124 ]
ll: [ 10211072, 8627968 ]
ur: [ 10211328, 8627712 ]
zoom level for trees should not use bounds anyway
ll + buffer: [ 10210972, 8628068 ]
ur + buffer: [ 10211428, 8627612 ]
init map with settings: {
  zoom_level: 16,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 16,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

ll: [ 10211584, 8627712 ]
ur: [ 10211840, 8627456 ]
ll + buffer: [ 10211484, 8627812 ]
ur + buffer: [ 10211940, 8627356 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 16,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

ll: [ 10212352, 8627968 ]
ur: [ 10212608, 8627712 ]
ll + buffer: [ 10212252, 8628068 ]
ur + buffer: [ 10212708, 8627612 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 16,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

Build map took: 7530 30370 31231 16 .grid
Render map took: 20616 30374 31230 16 .grid
Build map took: 20337 39886 33704 16 .grid
Build map took: 20483 39887 33701 16 .grid
Build map took: 20495 39892 33700 16 .grid
Build map took: 20528 39889 33704 16 .grid
Build map took: 20580 39892 33703 16 .grid
Build map took: 20616 39887 33701 16 .png
Build map took: 20665 39889 33704 16 .png
Build map took: 20694 39890 33703 16 .png
Build map took: 20710 39884 33704 16 .png
Build map took: 20757 39887 33704 16 .png
Build map took: 20760 39887 33702 16 .png
Build map took: 20636 39889 33701 16 .png
Build map took: 20562 39892 33702 16 .png
Render map took: 21726 30372 31229 16 .png
Render map took: 22784 30373 31228 16 .png
Render map took: 22785 30372 31231 16 .png
Render map took: 22699 30372 31228 16 .png
Render map took: 22712 30370 31231 16 .png
Render map took: 22709 30374 31231 16 .png
Render map took: 22709 30373 31231 16 .png
Render map took: 1846 39886 33704 16 .grid
Render map took: 17448 30370 31231 16 .grid
Render map took: 3748 39892 33700 16 .grid
Render map took: 3717 39889 33704 16 .grid
Render map took: 3668 39892 33703 16 .grid
ll: [ 5105664, 4314112 ]
ur: [ 5105920, 4313856 ]
ll + buffer: [ 5105564, 4314212 ]
ur + buffer: [ 5106020, 4313756 ]
use global data set
init map with settings: {
  zoom_level: 15,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}
sql:
          /* case4 tile */
          SELECT
          id,
          'cluster' as type,
          'case4 tile' AS log,
          location estimated_geometric_location,
          St_asgeojson(location) centroid,
          St_asgeojson(location) latlon,
          count,
          CASE WHEN count > 1000
          THEN  (count / 1000) || 'K'
          ELSE count || ''
          END AS count_text,
          NULL as zoom_to
          FROM clusters
          WHERE zoom_level = 14

handle geojson...
get query
cache bingo!
xml length: 371338
ll: [ 5105664, 4313856 ]
ur: [ 5105920, 4313600 ]
ll + buffer: [ 5105564, 4313956 ]
ur + buffer: [ 5106020, 4313500 ]
cache bingo!
ll: [ 5105920, 4313856 ]
ur: [ 5106176, 4313600 ]
ll + buffer: [ 5105820, 4313956 ]
ur + buffer: [ 5106276, 4313500 ]
cache bingo!
ll: [ 5105664, 4314368 ]
ur: [ 5105920, 4314112 ]
ll + buffer: [ 5105564, 4314468 ]
ur + buffer: [ 5106020, 4314012 ]
cache bingo!
ll: [ 5105408, 4313856 ]
ur: [ 5105664, 4313600 ]
ll + buffer: [ 5105308, 4313956 ]
ur + buffer: [ 5105764, 4313500 ]
cache bingo!
ll: [ 5106176, 4314112 ]
ur: [ 5106432, 4313856 ]
ll + buffer: [ 5106076, 4314212 ]
ur + buffer: [ 5106532, 4313756 ]
cache bingo!
ll: [ 5105920, 4314368 ]
ur: [ 5106176, 4314112 ]
ll + buffer: [ 5105820, 4314468 ]
ur + buffer: [ 5106276, 4314012 ]
cache bingo!
ll: [ 5105920, 4314112 ]
ur: [ 5106176, 4313856 ]
ll + buffer: [ 5105820, 4314212 ]
ur + buffer: [ 5106276, 4313756 ]
cache bingo!
use global data set
init map with settings: {
  zoom_level: 15,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}
sql:
          /* case4 tile */
          SELECT
          id,
          'cluster' as type,
          'case4 tile' AS log,
          location estimated_geometric_location,
          St_asgeojson(location) centroid,
          St_asgeojson(location) latlon,
          count,
          CASE WHEN count > 1000
          THEN  (count / 1000) || 'K'
          ELSE count || ''
          END AS count_text,
          NULL as zoom_to
          FROM clusters
          WHERE zoom_level = 14

handle geojson...
get query
xml length: 371338
use global data set
init map with settings: {
  zoom_level: 15,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}
sql:
          /* case4 tile */
          SELECT
          id,
          'cluster' as type,
          'case4 tile' AS log,
          location estimated_geometric_location,
          St_asgeojson(location) centroid,
          St_asgeojson(location) latlon,
          count,
          CASE WHEN count > 1000
          THEN  (count / 1000) || 'K'
          ELSE count || ''
          END AS count_text,
          NULL as zoom_to
          FROM clusters
          WHERE zoom_level = 14

handle geojson...
get query
xml length: 371338
use global data set
init map with settings: {
  zoom_level: 15,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}
sql:
          /* case4 tile */
          SELECT
          id,
          'cluster' as type,
          'case4 tile' AS log,
          location estimated_geometric_location,
          St_asgeojson(location) centroid,
          St_asgeojson(location) latlon,
          count,
          CASE WHEN count > 1000
          THEN  (count / 1000) || 'K'
          ELSE count || ''
          END AS count_text,
          NULL as zoom_to
          FROM clusters
          WHERE zoom_level = 14

handle geojson...
get query
xml length: 371338
use global data set
init map with settings: {
  zoom_level: 15,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}
sql:
          /* case4 tile */
          SELECT
          id,
          'cluster' as type,
          'case4 tile' AS log,
          location estimated_geometric_location,
          St_asgeojson(location) centroid,
          St_asgeojson(location) latlon,
          count,
          CASE WHEN count > 1000
          THEN  (count / 1000) || 'K'
          ELSE count || ''
          END AS count_text,
          NULL as zoom_to
          FROM clusters
          WHERE zoom_level = 14

handle geojson...
get query
xml length: 371338
use global data set
init map with settings: {
  zoom_level: 15,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}
sql:
          /* case4 tile */
          SELECT
          id,
          'cluster' as type,
          'case4 tile' AS log,
          location estimated_geometric_location,
          St_asgeojson(location) centroid,
          St_asgeojson(location) latlon,
          count,
          CASE WHEN count > 1000
          THEN  (count / 1000) || 'K'
          ELSE count || ''
          END AS count_text,
          NULL as zoom_to
          FROM clusters
          WHERE zoom_level = 14

handle geojson...
get query
xml length: 371338
use global data set
init map with settings: {
  zoom_level: 15,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}
sql:
          /* case4 tile */
          SELECT
          id,
          'cluster' as type,
          'case4 tile' AS log,
          location estimated_geometric_location,
          St_asgeojson(location) centroid,
          St_asgeojson(location) latlon,
          count,
          CASE WHEN count > 1000
          THEN  (count / 1000) || 'K'
          ELSE count || ''
          END AS count_text,
          NULL as zoom_to
          FROM clusters
          WHERE zoom_level = 14

handle geojson...
get query
xml length: 371338
use global data set
init map with settings: {
  zoom_level: 15,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}
sql:
          /* case4 tile */
          SELECT
          id,
          'cluster' as type,
          'case4 tile' AS log,
          location estimated_geometric_location,
          St_asgeojson(location) centroid,
          St_asgeojson(location) latlon,
          count,
          CASE WHEN count > 1000
          THEN  (count / 1000) || 'K'
          ELSE count || ''
          END AS count_text,
          NULL as zoom_to
          FROM clusters
          WHERE zoom_level = 14

handle geojson...
get query
xml length: 371338
use global data set
init map with settings: {
  zoom_level: 15,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}
ll: [ 5105408, 4314112 ]
ur: [ 5105664, 4313856 ]
ll + buffer: [ 5105308, 4314212 ]
ur + buffer: [ 5105764, 4313756 ]
sql:
          /* case4 tile */
          SELECT
          id,
          'cluster' as type,
          'case4 tile' AS log,
          location estimated_geometric_location,
          St_asgeojson(location) centroid,
          St_asgeojson(location) latlon,
          count,
          CASE WHEN count > 1000
          THEN  (count / 1000) || 'K'
          ELSE count || ''
          END AS count_text,
          NULL as zoom_to
          FROM clusters
          WHERE zoom_level = 14

handle geojson...
get query
xml length: 371338
cache bingo!
ll: [ 5104896, 4314112 ]
ur: [ 5105152, 4313856 ]
ll + buffer: [ 5104796, 4314212 ]
ur + buffer: [ 5105252, 4313756 ]
cache bingo!
ll: [ 5104640, 4314368 ]
ur: [ 5104896, 4314112 ]
ll + buffer: [ 5104540, 4314468 ]
ur + buffer: [ 5104996, 4314012 ]
cache bingo!
use global data set
init map with settings: {
  zoom_level: 15,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}
sql:
          /* case4 tile */
          SELECT
          id,
          'cluster' as type,
          'case4 tile' AS log,
          location estimated_geometric_location,
          St_asgeojson(location) centroid,
          St_asgeojson(location) latlon,
          count,
          CASE WHEN count > 1000
          THEN  (count / 1000) || 'K'
          ELSE count || ''
          END AS count_text,
          NULL as zoom_to
          FROM clusters
          WHERE zoom_level = 14

handle geojson...
get query
xml length: 371338
use global data set
init map with settings: {
  zoom_level: 15,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}
sql:
          /* case4 tile */
          SELECT
          id,
          'cluster' as type,
          'case4 tile' AS log,
          location estimated_geometric_location,
          St_asgeojson(location) centroid,
          St_asgeojson(location) latlon,
          count,
          CASE WHEN count > 1000
          THEN  (count / 1000) || 'K'
          ELSE count || ''
          END AS count_text,
          NULL as zoom_to
          FROM clusters
          WHERE zoom_level = 14

handle geojson...
get query
xml length: 371338
ll: [ 5104640, 4313856 ]
ur: [ 5104896, 4313600 ]
ll + buffer: [ 5104540, 4313956 ]
ur + buffer: [ 5104996, 4313500 ]
cache bingo!
use global data set
init map with settings: {
  zoom_level: 15,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}
sql:
          /* case4 tile */
          SELECT
          id,
          'cluster' as type,
          'case4 tile' AS log,
          location estimated_geometric_location,
          St_asgeojson(location) centroid,
          St_asgeojson(location) latlon,
          count,
          CASE WHEN count > 1000
          THEN  (count / 1000) || 'K'
          ELSE count || ''
          END AS count_text,
          NULL as zoom_to
          FROM clusters
          WHERE zoom_level = 14

handle geojson...
get query
xml length: 371338
ll: [ 5104896, 4314112 ]
use global data set
init map with settings: {
  zoom_level: 15,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}
sql:
          /* case4 tile */
          SELECT
          id,
          'cluster' as type,
          'case4 tile' AS log,
          location estimated_geometric_location,
          St_asgeojson(location) centroid,
          St_asgeojson(location) latlon,
          count,
          CASE WHEN count > 1000
          THEN  (count / 1000) || 'K'
          ELSE count || ''
          END AS count_text,
          NULL as zoom_to
          FROM clusters
          WHERE zoom_level = 14

handle geojson...
get query
xml length: 371338
ur: [ 5105152, 4313856 ]
ll + buffer: [ 5104796, 4314212 ]
ur + buffer: [ 5105252, 4313756 ]
cache bingo!
ll: [ 5106432, 4314112 ]
ur: [ 5106688, 4313856 ]
ll + buffer: [ 5106332, 4314212 ]
ur + buffer: [ 5106788, 4313756 ]
cache bingo!
use global data set
init map with settings: {
  zoom_level: 15,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}
sql:
          /* case4 tile */
          SELECT
          id,
          'cluster' as type,
          'case4 tile' AS log,
          location estimated_geometric_location,
          St_asgeojson(location) centroid,
          St_asgeojson(location) latlon,
          count,
          CASE WHEN count > 1000
          THEN  (count / 1000) || 'K'
          ELSE count || ''
          END AS count_text,
          NULL as zoom_to
          FROM clusters
          WHERE zoom_level = 14

handle geojson...
get query
xml length: 371338
ll: [ 5105408, 4313600 ]
ur: [ 5105664, 4313344 ]
ll + buffer: [ 5105308, 4313700 ]
ur + buffer: [ 5105764, 4313244 ]
use global data set
init map with settings: {
  zoom_level: 15,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}
sql:
          /* case4 tile */
          SELECT
          id,
          'cluster' as type,
          'case4 tile' AS log,
          location estimated_geometric_location,
          St_asgeojson(location) centroid,
          St_asgeojson(location) latlon,
          count,
          CASE WHEN count > 1000
          THEN  (count / 1000) || 'K'
          ELSE count || ''
          END AS count_text,
          NULL as zoom_to
          FROM clusters
          WHERE zoom_level = 14

handle geojson...
get query
cache bingo!
xml length: 371338
Render map took: 5964 39887 33701 16 .grid
Render map took: 28759 30371 31230 16 .png
Build map took: 3908 19944 16851 15 .grid
Build map took: 3752 19944 16850 15 .grid
Build map took: 3802 19945 16850 15 .grid
Build map took: 3836 19944 16852 15 .grid
Build map took: 3871 19943 16850 15 .grid
Build map took: 3927 19946 16851 15 .grid
Build map took: 3973 19945 16852 15 .png
Build map took: 4011 19945 16851 15 .png
Build map took: 4137 19943 16851 15 .png
Build map took: 3820 19941 16851 15 .grid
Build map took: 3726 19940 16852 15 .grid
Build map took: 3786 19940 16850 15 .grid
Build map took: 3820 19941 16851 15 .png
Build map took: 3750 19947 16851 15 .png
Render map took: 8441 39887 33701 16 .png
Render map took: 8497 39889 33704 16 .png
Render map took: 8464 39890 33703 16 .png
Render map took: 8443 39884 33704 16 .png
Render map took: 8397 39887 33704 16 .png
Render map took: 8344 39892 33702 16 .png
Render map took: 8370 39889 33701 16 .png
Build map took: 3960 19943 16849 15 .png
Render map took: 947 19945 16850 15 .grid
Render map took: 1001 19944 16852 15 .grid
Render map took: 967 19943 16850 15 .grid
Render map took: 1125 19944 16850 15 .grid
Render map took: 1139 19944 16851 15 .grid
ll: [ 7774464, 7994624 ]
ur: [ 7774720, 7994368 ]
ll + buffer: [ 7774364, 7994724 ]
ur + buffer: [ 7774820, 7994268 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 16,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

Render map took: 1455 19946 16851 15 .grid
Render map took: 1422 19941 16851 15 .grid
Render map took: 1432 19940 16852 15 .grid
Render map took: 1385 19940 16850 15 .grid
Render map took: 9409 39887 33702 16 .png
Render map took: 31083 30371 31229 16 .png
Render map took: 1771 19945 16852 15 .png
Build map took: 878 30369 31228 16 .grid
Render map took: 1767 19945 16851 15 .png
Render map took: 1314 19941 16851 15 .png
ll: [ 10211072, 8627968 ]
ur: [ 10211328, 8627712 ]
ll + buffer: [ 10210972, 8628068 ]
ur + buffer: [ 10211428, 8627612 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 16,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

Render map took: 1492 19947 16851 15 .png
Render map took: 1848 19943 16851 15 .png
Render map took: 1270 19943 16849 15 .png
Build map took: 217 39887 33702 16 .png
Render map took: 32372 30370 31229 16 .png
Render map took: 1715 39887 33702 16 .png
ll: [ 20422656, 17255936 ]
ur: [ 20422912, 17255680 ]
ll + buffer: [ 20422556, 17256036 ]
ur + buffer: [ 20423012, 17255580 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 17,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

ll: [ 20422912, 17255680 ]
ur: [ 20423168, 17255424 ]
ll + buffer: [ 20422812, 17255780 ]
ur + buffer: [ 20423268, 17255324 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 17,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

ll: [ 20422912, 17255424 ]
ur: [ 20423168, 17255168 ]
ll + buffer: [ 20422812, 17255524 ]
ur + buffer: [ 20423268, 17255068 ]
ll: [ 20422656, 17255424 ]
ur: [ 20422912, 17255168 ]
ll + buffer: [ 20422556, 17255524 ]
ur + buffer: [ 20423012, 17255068 ]
ll: [ 20422656, 17255680 ]
ur: [ 20422912, 17255424 ]
ll + buffer: [ 20422556, 17255780 ]
ur + buffer: [ 20423012, 17255324 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 17,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 17,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 17,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 17,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

ll: [ 20422400, 17255680 ]
ur: [ 20422656, 17255424 ]
ll + buffer: [ 20422300, 17255780 ]
ur + buffer: [ 20422756, 17255324 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 17,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

ll: [ 20422912, 17255936 ]
ur: [ 20423168, 17255680 ]
ll + buffer: [ 20422812, 17256036 ]
ur + buffer: [ 20423268, 17255580 ]
ll: [ 20423168, 17255680 ]
ur: [ 20423424, 17255424 ]
ll + buffer: [ 20423068, 17255780 ]
ur + buffer: [ 20423524, 17255324 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 17,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

ll: [ 20422400, 17255424 ]
ur: [ 20422656, 17255168 ]
ll + buffer: [ 20422300, 17255524 ]
ur + buffer: [ 20422756, 17255068 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 17,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

ll: [ 20423168, 17255424 ]
ur: [ 20423424, 17255168 ]
ll + buffer: [ 20423068, 17255524 ]
ur + buffer: [ 20423524, 17255068 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 17,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

ll: [ 20422400, 17255936 ]
ur: [ 20422656, 17255680 ]
ll + buffer: [ 20422300, 17256036 ]
ur + buffer: [ 20422756, 17255580 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 17,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

ll: [ 20422144, 17255168 ]
ur: [ 20422400, 17254912 ]
ll + buffer: [ 20422044, 17255268 ]
ur + buffer: [ 20422500, 17254812 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 17,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

ll: [ 20422912, 17255168 ]
ur: [ 20423168, 17254912 ]
ll + buffer: [ 20422812, 17255268 ]
ur + buffer: [ 20423268, 17254812 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 17,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

ll: [ 20422656, 17256192 ]
zoom level for trees should not use bounds anyway
ur: [ 20422912, 17255936 ]
ll + buffer: [ 20422556, 17256292 ]
ur + buffer: [ 20423012, 17255836 ]
init map with settings: {
  zoom_level: 17,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

ll: [ 20422144, 17255424 ]
ur: [ 20422400, 17255168 ]
ll + buffer: [ 20422044, 17255524 ]
ur + buffer: [ 20422500, 17255068 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 17,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

ll: [ 20422144, 17255936 ]
ur: [ 20422400, 17255680 ]
ll + buffer: [ 20422044, 17256036 ]
ur + buffer: [ 20422500, 17255580 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 17,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

ll: [ 20423168, 17255168 ]
ur: [ 20423424, 17254912 ]
ll + buffer: [ 20423068, 17255268 ]
ur + buffer: [ 20423524, 17254812 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 17,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

ll: [ 20422144, 17255680 ]
ur: [ 20422400, 17255424 ]
ll + buffer: [ 20422044, 17255780 ]
ur + buffer: [ 20422500, 17255324 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 17,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

ll: [ 20423680, 17255168 ]
ur: [ 20423936, 17254912 ]
ll + buffer: [ 20423580, 17255268 ]
ur + buffer: [ 20424036, 17254812 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 17,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

ll: [ 20421888, 17255168 ]
ur: [ 20422144, 17254912 ]
ll + buffer: [ 20421788, 17255268 ]
ur + buffer: [ 20422244, 17254812 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 17,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

ll: [ 20421888, 17255424 ]
ur: [ 20422144, 17255168 ]
ll + buffer: [ 20421788, 17255524 ]
ur + buffer: [ 20422244, 17255068 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 17,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

Build map took: 2335 79776 67405 17 .grid
Build map took: 1934 79777 67404 17 .grid
Build map took: 1848 79777 67403 17 .grid
Build map took: 1837 79776 67403 17 .grid
Build map took: 1833 79776 67404 17 .grid
Build map took: 1822 79775 67404 17 .grid
Build map took: 1821 79777 67405 17 .grid
Build map took: 1770 79775 67403 17 .grid
Build map took: 1804 79778 67404 17 .grid
Build map took: 1742 79778 67403 17 .grid
Build map took: 1701 79774 67402 17 .grid
Build map took: 1748 79775 67405 17 .grid
ll: [ 20423424, 17255936 ]
ur: [ 20423680, 17255680 ]
ll + buffer: [ 20423324, 17256036 ]
ur + buffer: [ 20423780, 17255580 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 17,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

ll: [ 20421888, 17255936 ]
ur: [ 20422144, 17255680 ]
ll + buffer: [ 20421788, 17256036 ]
ur + buffer: [ 20422244, 17255580 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 17,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

ll: [ 20421888, 17255680 ]
ur: [ 20422144, 17255424 ]
ll + buffer: [ 20421788, 17255780 ]
ur + buffer: [ 20422244, 17255324 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 17,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

ll: [ 20423168, 17256192 ]
ur: [ 20423424, 17255936 ]
ll + buffer: [ 20423068, 17256292 ]
ur + buffer: [ 20423524, 17255836 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 17,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 17,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}
ll: [ 20422656, 17255168 ]
ur: [ 20422912, 17254912 ]
ll + buffer: [ 20422556, 17255268 ]
ur + buffer: [ 20423012, 17254812 ]

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

ll: [ 20422144, 17256192 ]
ur: [ 20422400, 17255936 ]
ll + buffer: [ 20422044, 17256292 ]
ur + buffer: [ 20422500, 17255836 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 17,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

ll: [ 20422400, 17255936 ]
ur: [ 20422656, 17255680 ]
ll + buffer: [ 20422300, 17256036 ]
ur + buffer: [ 20422756, 17255580 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 17,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

ll: [ 20422144, 17255680 ]
ur: [ 20422400, 17255424 ]
ll + buffer: [ 20422044, 17255780 ]
ur + buffer: [ 20422500, 17255324 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 17,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

ll: [ 20422656, 17255424 ]
ur: [ 20422912, 17255168 ]
ll + buffer: [ 20422556, 17255524 ]
ur + buffer: [ 20423012, 17255068 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 17,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

ll: [ 20422656, 17255168 ]
ur: [ 20422912, 17254912 ]
ll + buffer: [ 20422556, 17255268 ]
ur + buffer: [ 20423012, 17254812 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 17,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

ll: [ 20423168, 17255680 ]
ur: [ 20423424, 17255424 ]
ll + buffer: [ 20423068, 17255780 ]
ur + buffer: [ 20423524, 17255324 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 17,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 17,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}
ll: [ 20423424, 17255424 ]
ur: [ 20423680, 17255168 ]
ll + buffer: [ 20423324, 17255524 ]
ur + buffer: [ 20423780, 17255068 ]

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

ll: [ 20423680, 17256192 ]
ur: [ 20423936, 17255936 ]
ll + buffer: [ 20423580, 17256292 ]
ur + buffer: [ 20424036, 17255836 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 17,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

ll: [ 20423168, 17255424 ]
ur: [ 20423424, 17255168 ]
ll + buffer: [ 20423068, 17255524 ]
ur + buffer: [ 20423524, 17255068 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 17,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

ll: [ 20422144, 17255168 ]
ur: [ 20422400, 17254912 ]
ll + buffer: [ 20422044, 17255268 ]
ur + buffer: [ 20422500, 17254812 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 17,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

ll: [ 20422400, 17255168 ]
ur: [ 20422656, 17254912 ]
ll + buffer: [ 20422300, 17255268 ]
ur + buffer: [ 20422756, 17254812 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 17,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

ll: [ 20423424, 17256192 ]
ur: [ 20423680, 17255936 ]
ll + buffer: [ 20423324, 17256292 ]
ur + buffer: [ 20423780, 17255836 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 17,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

ll: [ 20422400, 17255680 ]
ur: [ 20422656, 17255424 ]
ll + buffer: [ 20422300, 17255780 ]
ur + buffer: [ 20422756, 17255324 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 17,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

ll: [ 20422912, 17255424 ]
ur: [ 20423168, 17255168 ]
ll + buffer: [ 20422812, 17255524 ]
ur + buffer: [ 20423268, 17255068 ]
zoom level for trees should not use bounds anyway
init map with settings: {
  zoom_level: 17,
  userid: undefined,
  wallet: undefined,
  timeline: undefined,
  map_name: undefined,
  bounds: undefined
}

      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

sql:
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC

Build map took: 10802 79777 67402 17 .grid
Build map took: 10576 79776 67406 17 .grid
Build map took: 10556 79774 67403 17 .grid
Build map took: 10500 79774 67405 17 .grid
Build map took: 10484 79774 67404 17 .grid
Build map took: 10494 79778 67402 17 .grid
Build map took: 10394 79780 67402 17 .grid
Build map took: 10105 79773 67402 17 .grid
Render map took: 9266 79776 67405 17 .grid
Build map took: 9894 79773 67403 17 .grid
Render map took: 9354 79777 67404 17 .grid
Render map took: 9355 79777 67403 17 .grid
Render map took: 9361 79775 67404 17 .grid
Render map took: 9361 79777 67405 17 .grid
Render map took: 9378 79776 67404 17 .grid
Render map took: 9380 79776 67403 17 .grid
Render map took: 9375 79775 67403 17 .grid
Render map took: 9375 79778 67404 17 .grid
Render map took: 9434 79774 67402 17 .grid
Build map took: 9333 79779 67405 17 .grid
Build map took: 9260 79773 67405 17 .grid
Render map took: 9848 79778 67403 17 .grid
Render map took: 9886 79775 67405 17 .grid
e when fromString: [Error: Postgis Plugin: server closed the connection unexpectedly
        This probably means the server terminated abnormally
        before or while processing the request.
could not send startup packet: Connection reset by peer
Connection string: 'host=treetracker-pgpool-service.pgpool port=9999 dbname=treetracker user=readonlyuser conne
ct_timeout=180 fallback_application_name=mapnik'
  encountered during parsing of layer 'l1' in Layer]
FATAL ERROR: Error::Error napi_create_reference
 1: 0xa1a640 node::Abort() [node]
 2: 0xa1aa4c node::OnFatalError(char const*, char const*) [node]
 3: 0xa1aae9  [node]
 4: 0x9ee19b napi_fatal_error [node]
 5: 0x7fb94a34f9c6  [/app/lib/binding/mapnik.node]
 6: 0x7fb94a34fc07  [/app/lib/binding/mapnik.node]
 7: 0x7fb94a360500  [/app/lib/binding/mapnik.node]
 8: 0x9ecc43  [node]
 9: 0x136f3c5  [node]
10: 0x1373ade  [node]
11: 0x1386b75  [node]
12: 0x137431f uv_run [node]
13: 0xa5d726 node::NodeMainInstance::Run() [node]
14: 0x9eab6c node::Start(int, char**) [node]
15: 0x7fb9514bdbf7 __libc_start_main [/lib/x86_64-linux-gnu/libc.so.6]
16: 0x982005  [node]
Aborted (core dumped)
npm ERR! code ELIFECYCLE
npm ERR! errno 134
npm ERR<EMAIL_ADDRESS>start: `node --max-old-space-size=1024 greenstand/server.js`
npm ERR! Exit status 134
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2021-08-24T16_59_54_102Z-debug.log
~>

This is log from another pod, seems the db(pgpool or postgresql) terminated all connection!

[Error: Postgis Plugin: server closed the connection unexpectedly
        This probably means the server terminated abnormally
        before or while processing the request.
in executeQuery Full sql was: 'SELECT ST_AsBinary("estimated_geometric_location") AS geom FROM (
      /* sql case2 tile */
      WITH placeholder AS (SELECT 1)
      SELECT /* DISTINCT ON(trees.id) */
      'case2 tile' AS log,
      estimated_geometric_location,
      St_asgeojson(estimated_geometric_location) latlon,
      'point' AS type,
       trees.id,
       trees.lat,
       trees.lon,
      NULL AS zoom_to,
      1 as count
      FROM trees

      WHERE active = true

      ORDER BY ID DESC
    ) as cdbq WHERE "estimated_geometric_location" && ST_MakeEnvelope(-13.16926002502441,8.415913625646629,-13.
15947532653809,8.425592838760219,4326)'
]
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>start: `node --max-old-space-size=1024 greenstand/server.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR!