I render tiles for mapbox with tippecanone.
I want to use it to represent buildings. Unfortunately, the buildings lose the structure at zoom level 14 in Mapbox. I have already tried various options with tippecaone. Neither did it.
Info:
Geojson file is 720mb in size
Used tippecanoe statement:
tippecanoe -d16 -r0 -z20 -o tiles.mbtiles tiles.geojson
Related
A related question on using leaflet states that one can use the tilesize parameter to support 512x512 tiles: Street labels in Mapbox Tile Layer too small:
It looks like you have 512px sized tiles, but mapping the Earth as if
they were 256px sized.
Therefore you need a combination of tileSize and zoomOffset options on
your Tile Layer to compensate for these settings, and retrieve the
correct view with readable sized text on the tiles
How can do this using the folium library for Python? Their official docs don't seem to contain any mentions of a tilesize parameter.
Mapbox studio has a style with an Albers projection (https://www.mapbox.com/elections/albers-usa-projection-style):
I need to use another style with waterbodies like this:
but in the Albers projection. When I start with the Albers style, and then add water, they of course don't line up:
How can I get the tile I used in my waterbody example to be in the Albers project? I ultimately am wanting to use it in a leaflet map and add markers to it (using R).
The example you cited above is actually showing a workaround to make data appear as if it is projected in Albers but it's really just altered polygons being displayed in webmercator. This was a workaround/hack to get the desired visual using the tools available at the time. If you want to do the same workaround for your water bodies data so it will appear this way in leaflet, follow the steps of the tutorial which uses third party tools (QGIS, Dirty Reprojectors, Tippecanoe)
Mapbox has since added support for non-webmercator projections, which means you don't need to modify your source data to reproject them for use in a mapboxgl-js map: https://docs.mapbox.com/mapbox-gl-js/example/projections/
Disregard the earlier example, and just change the projection to Albers in Mapbox Studio.
Bear in mind that changing the projection in Mapbox Studio does not actually modify your data, it just renders it differently on the screen.
I am building a map and want to use the leaflet markercluster plugin to cluster any markers that intersect visibly (the icons overlap each other). I can't seem to figure out a way to check whether the markers icons intersect though.
I've examined the documentation and the Marker objects. The marker object has no "bounds" object and has no function to return the bounds of the icon.
Yes, it's possible.
This is implemented in some Leaflet plugins, like Leaflet.LayerGroup.Collision - the technique involves fetching the computed style of each icon's HTML element to get the actual size in CSS pixels, offset those numbers by the relative pixel position of the marker's LatLng, and using a rtree data structure to speed up the calculation of the overlaps. Do have a look at the complete source for LayerGroup.Collision plugin.
Note that this technique only takes into account the rectangular bounding boxes of the icons; while it would be possible to check for the individual transparent pixels, that would involve more complex data structures and a different technique to fetch the opacity of each pixel.
My reading of the Leaflet and Mapzen documentations suggest that in order to use a custom tile provider with Leaflet, one needs to do just two things:
Specify the tile provider in L.tilelayer(urlTemplateToTileProvider)
Set this provider to MapZen
var urlTemplateToTileProvider =
'http://tile.mapzen.com/mapzen/vector/v1/all/{z}/{x}/{y}.mvt?api_key=apiKey'
However, when I try this I end up with an empty map which then proceeds to display markers etc correctly. And yet a manual test for a generated tile URL, e.g.
http://tile.mapzen.com/mapzen/vector/v1/all/14/8471/5583.mvt?api_key=apiKey
did in fact download some - unintelligible to me - data.
I also tried using the other two formats mentioned in the Mapzen docs (.json and .geojson) but with exactly the same result. Given that the latter two formats return human readable data, I checked them out for my test tile in my browser and the data is indeed for the area I want to use.
Curiously enough, the Leaflet docs and tutorials request a PNG tile layer (http://{s}.tile.osm.org/{z}/{x}/{y}.png), not raw data.
What am I doing wrong here?
The Tile Layer is for raster tiles (i.e. plain images, like the PNG format for example).
Mapzen delivers vector tiles. To use them with Leaflet, you could use a plugin, e.g. Leaflet.VectorGrid (license)
Display gridded vector data (sliced GeoJSON or protobuf vector tiles) in Leaflet 1.0.0
See the demo, which includes tiles from Mapzen
var mapzenTilesUrl = "https://tile.mapzen.com/mapzen/vector/v1/all/{z}/{x}/{y}.mvt?api_key={apikey}";
var mapzenVectorTileOptions = {
rendererFactory: L.canvas.tile,
attribution: '© MapZen, © OpenStreetMap contributors',
vectorTileLayerStyles: vectorTileStyling,
apikey: 'KEY',
};
var mapzenTilesPbfLayer = L.vectorGrid.protobuf(mapzenTilesUrl, mapzenVectorTileOptions);
Since you have raw data in the vector tiles, you need to provide the styling spec (vectorTileStyling)
can you tell me what is the simpliest way to add style for my shape extracts from mapzen and give me some hint how do that in windows, becouse the majoritz of tutorials are for linux or mac oc. I need also help to choose the correct shape files from mapzen, there are 2 ways:
datasets split by by geometry type: lines, points or polygons
datasets grouped into individual layers by OpenStreetMap tags
I need import shape into tilemill, add nice style (for exmaple this: https://github.com/mapbox/osm-bright), and next export to *.mbtiles.