13

By the looks of it you render the QGIS WMTS in a different projection than the original WMTS. This can be seen by the angle of intersection of the highways. In QGIS this seem to be a perfect 90 degree angle, in the browser it is not. The reprojecting is done locally in QGIS, not at the server side. Therefore the original image gets distorted resulting in the ...


11

The zoomscales in QGIS probably differ from the configured grid set in GeoServer. This causes resampling of the images in QGIS resulting in less sharp images and less performance. See GeoServer documentation. You can change the zoomscales in QGIS via: Settings Options Map Tools Predefined zoomscales Different sets I use are: (Copy paste to XML, then ...


9

In other implementations (as in, our implementation) this is done with palette modification; you can quickly recolor a PNG image without touching the actual data, if you know the full original palette. Google doesn't do that; they likely have a tile-based database and tiles of vector data that are rasterized on the fly.


6

I think there are two things that should help you accomplish this: documentation for creating custom layers sample showing how to put tiles in local storage Side note: you linked to the 1.6 docs. While valid for 1.6, the current version of the API is 2.5 and we recommend you use that as 1.6 is no longer being updated. Edit: Here's a working example of a ...


6

i think you can achieve this with some css bindings which is not a gis solution. in css there are lots of css media types and one of these is print element. you can add this to your index page with this way: <link rel="stylesheet" type="text/css" media="print" href="print.css"> and with some css code may help you. body { background: white; ...


5

There was a mention of a TileCache patch for this on the OSGeo mailing lists: http://www.osgeo.org/pipermail//tilecache/2009-June/001863.html Unfortunately the links to the patches no longer work. Apparently the patch involved a few changes to the code base, and would allow different caches to be used based on any URL argument. I have an old script (in ...


5

I made a cheat-sheet that lists the total number of tiles for given zoom-levels. It has two tables. One showing the number of zoom-levels needed to show things at a certain scale, starting from a tile showing people. level 1: 1 # Person level 2: 5 # Car level 3: 21 # House building level 4: 85 # Square level 5: 341 # Small neighbourhood level 6: 1,365 # ...


5

Luckily you do not need to trust in what you read from the web but you can make a test with your own data. It is not as simple as "PNG tiles are much larger than JPEG, but have better quality". That is mostly true with aerial and satellite images which can be compressed effectively with lossy jpeg method. PNG is lossless and quality is thus perfect but the ...


4

answer to my comment(this code is for my tms scheme and you can adapt it to your need): var originShift = 2 * Math.PI * 6378137 / 2.0; var initialResolution = 2 * Math.PI * 6378137 / 256; //tilesize var lon = 10; var lat = 20; var mx = lon * originShift / 180.0; var my = Math.log(Math.tan((90 + lat) * Math.PI / 360.0)) / (Math.PI / 180.0); my = my * ...


4

Unless you have access to some kind of geospatial server such as GeoServer, MapServer, or access to any ESRI Server products, rendering the GeoTiffs will be a problem. What I have done in the past when lacking a geospatial server was convert what I can via QGIS to a geojson file. QGIS can handle several formats of data which can be exported in several ...


4

It sounds like you first tried a source install of Mapnik. At this time input plugins were properly installed into the default directory at /usr/local/lib/mapnik/input. But the postgis plugin was not built because you did not have the pg_config program available and/or the postgres-devel package. If you followed http://github.com/mapnik/mapnik/wiki/...


4

you might want to have a look at https://github.com/mapbox/tilelive-decorator This allows you to update properties of vector tile features dynamically from Redis, but I am sure you can implement it with an other data source. This should fit quite well with your use case. Underneath it uses https://www.npmjs.com/package/tile-decorator to do the actual work ...


3

(B2) When you will try to request getCapabilities for the WMTS layer and layer name has same name in geowebcache.xml you will get the response which contains capabilities of two layers with the same name but different . If you are getting layers on client via OpenScales you'll notice that HashMap of my:Layer will be broken. Different names in geowebcache....


3

Ran into the same issue (e), using namespace:layername for WMTS layer parameter solved this issue for me. I noticed following behaviour: Requesting a WMTS Tile without namespace for the WMTS layer parameter always forces a reseed of tiles (e.g. http://example.net/geoserver/gwc/service/wmts/?SERVICE=WMTS&REQUEST=GetTile&LAYER=layername...) ...


3

As per the documentation, switching from WMS to GeoWebCache only requires a URL change from: /geoserver/wms <- direct WMS /geoserver/gwc/service/wms <- geocached wms and you're good to go, no need to switch WMTS. BTW, GeoWebCache requires all tiles be 256x256. You can also seed the cache from the GeoCache home that can be reached from the Geoserver ...


3

See the details for the sample Esri service at that URL, which contains the line: Single Fused Map Cache: true Verify that your own service also contains this line - chances are that it doesn't. In that case you need to build a cache using the instructions at Creating map cache tiles. You'll then be able to display your data as a tiled layer.


3

MapProxy is certainly a good option. If it is just a script you require, TileCache is another option. It's not as configurable as MapProxy, but it is a nice, light-weight solution. If you are already serving your WMS using GeoServer, then I'd recommend GeoWebCache.


3

With your purpose, i think mapproxy (www.mapproxy.org) is the best choice. MapProxy not only caches tiles, wms source but also serve the cached tiles as TMS, WMS.


3

I suggest to use EPSG:3857 as CRS for the raster during the tiling process. EPSG:900913 is not included in current GDAL and QGIS anymore, thus the special spherical mercator treatment is not applied. The proj definition for EPSG:3857 is +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs ...


3

use this: OpenLayers.Util.onImageLoadError = function() {this.src = '/img/noimg.png';}; i hope it helps you...


3

I know this isn't quite what you are looking for, but I thought you might find it useful anyway. Have you seen this example by Odoe which uses css filters on the maps? Might be limited outside of chrome http://www.odoe.net/apps/mapstyler/ https://github.com/odoe/MapStyler


3

If I understood correct your problem is that it is impossible to determine the combination of layers with each request as users can select any of the 140 layers and the client is sending one request for all layers combined (ie not a request for each layer). In that case you could try fronting your WMS servers with a caching service like MapProxy or Mapcache ...


3

If you are using QGIS, you could utilise the OpenLayers plugin. Progams such as Mapertive can download tiles from OpenStreetMap, using the generate-tiles method. Other programs may be available for other sources. Mapertive exports the images into the 'Tiles' subfolder. Once you have the tiles downloaded, make a copy of one of the files in the qgis\python\...


3

When publishing your map service in the Service Editor, Go to the Caching -> Advanced Settings. Down the page, where you see Area of interest to cache, you can set it to either Full extent of the map (maybe entire world), Current Extent of the map, or you can import the Area of Interest from a Feature Class. If you select the last one, ArcGIS prompts you for ...


3

Instead of creating metatiles I have now tested different tiling scripts that I've found. They are all using the same source image which is a JPG (with a .JGW) in EPSG:3857 projection. Bilinear has been used in scaling and the zoom level was 9. generate_tiles.py (slightly modified): 22 minutes. gdal2tiles.py (patched for 2 cpu cores): 3 minutes. gdal_tiler....


3

It sounds like what you are really wanting is to be able to override specific tiles in a map. I have implemented this with TileLayers in Google Maps in the past. Not sure how to do this with OSM, but there should be a tile request hook in your javascript that would allow you to point at a script to check a local cache before forwarding the request out to a ...


2

20 km wrong in north/south direction is very probable to be caused by mixing spherical and ellipsoid representations of Earth. Google Maps and Open Street Maps (OSM) use a tweaked Mercator (which seem to be called "Web Mercator") that is faster to calculate. The tile-software behind OSM likely also uses the spherical faster model, while your input data is ...


2

Did you read the OSM Mapnik tutorial on the OSM wiki or any of the other tutorials online? Now you will find it much harderto do this on Windows, so for every single component of those tutorials, you are going to need to find a Windows port - not fun. Do yourself a favor and download Cygwin and OSGeo4W which will provide 90% of the components you need ...


2

Your bounds are wrong (in fact they are so wrong I'm surprised that you see that much map). Change maxExtent: new OpenLayers.Bounds(0.05917265625,0.1171263671875,0.0593009765625,0.11720234375), to something like : 'maxExtent': new OpenLayers.Bounds(-20037508.34,-20037508.34,20037508.34,20037508.34) You can also read this tutorial which discusses ...


2

You should be able to easily achieve that by: implement an on insert/update trigger which puts changed features on a work queue a worker that periodically wales up and grabs stuff to do from the queue and refreshes tiles Item 1 can be easily written in pure sql in postgres by means of a trigger. As for item 2 you just need to call the seed program (all ...


Only top voted, non community-wiki answers of a minimum length are eligible