geodesign / django-raster

Django-raster allows you to create tiled map services (TMS) and raster map algebra end points for web maps. It is Python-based, and requires GeoDjango with a PostGIS backend.
BSD 3-Clause "New" or "Revised" License
96 stars 39 forks source link

django-raster rendering raster url #32

Closed cs89gr closed 6 years ago

cs89gr commented 6 years ago

i want to add raster functionality in django using postgis database using django-raster package and this docs.

here my code :

models.py

from django.contrib.gis.db import models class RasterWithName(models.Model): raster = models.RasterField() name = models.TextField() add raster using console :

from django.contrib.gis.gdal import GDALRaster from myapp.models import RasterWithName gdal_raster = GDALRaster('C:/Users/username/Desktop/image.tif') rast = RasterWithName(name='one', raster=gdal_raster) rast.save() but i am very confused with Rendering tiles and urls.

docs say :

/raster/tiles/layer_id/{z}/{x}/{y}.png where the layer_id is the primary key of a raster layer. This structure can be used directly in online mapping software such as OpenLayers or Leaflet. An example request could look like this: /raster/tiles/23/8/536/143.png, returning a tile in png format of the layer with ID pk=23 at zoom level z=8 and indexes x=536 and y=143

but indexes x,y mean some random x,y coordinate in image ?anyway i using this url http://127.0.0.1:8000/raster/tiles/1/8/536/143.png or http://127.0.0.1:8000/raster/tiles/1/8/20/40.png(origin x,y in my image) and i take a black window in my browser,any idea where i have wrong in my url rendering ?

yellowcap commented 6 years ago

In your code example you create your own raster model. That is not compatible with the django-raster package. The goal of django-raster is to avoid having to create and manage raster models.

In your case, make sure django-raster is correctly installed, see https://django-raster.readthedocs.io/en/stable/installation.html).

Then the raster files itself should be stored using the RasterLayer model that comes with the django-raster package. The easiest way to add your image is to use the django admin site. Simply create a new RasterLayer in the admin and upload your file using the rasterfile field.

yellowcap commented 6 years ago

Also answered this question in https://gis.stackexchange.com/questions/288122.