I'm completely new to GeoDjango.  I'm working through the tutorial for 
Django version 2.0, and I am encountering an error when I follow the steps 
in the GeoDjango section.  

Specifically, when I attempt to slice a Layer object to extract Features, 
it gives me an error which looks like a possible bug.   I'll go through the 
steps here.


   1. 
   
https://docs.djangoproject.com/en/2.0/ref/contrib/gis/tutorial/#importing-spatial-data
   1. in this section of the tutorial, we import spatial data and use the 
      GDAL library to work with an imported shapefile of world borders
      2. Next, through the Django shell, I create a DataSource object 
      
<https://docs.djangoproject.com/en/2.0/ref/contrib/gis/gdal/#django.contrib.gis.gdal.DataSource>
 
      using the *django.contrib.gis.gdal *module
      3. I am able to retrieve, from this DataSource object, a Layer object 
      <https://docs.djangoproject.com/en/2.0/ref/contrib/gis/gdal/#layer> 
      containing Features for each polygon
      4. I can work through the examples showing the properties of that 
      Layer object, and iterate through the Features in the Layer, so I know 
      that's working
   2. The problem is when I try to Slice a Layer, to extract a subset of 
   Features: 
      1. The example says I should be able to run  *>>> lyr[0:2]* and 
      receive two Feature objects
      2. However, what I get is an error message saying there is an 
      IndexError, and it mentions a TypeError
   

This is an image of the Traceback

<https://lh3.googleusercontent.com/-brhlB-hy304/Wlk0oyv_XwI/AAAAAAAAf4c/mjZO4-9mEq4NjCj06XXm60HB90SwE9YSwCLcBGAs/s1600/Django_Slice_Error.jpg>



And here is the traceback in text:



In [12]: lyr[0:2]
---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
<ipython-input-12-a781c315deac> in <module>()
----> 1 lyr[0:2]

c:\projects\python\env\ENV3\lib\site-packages\django\contrib\gis\gdal\layer.py 
in __getitem__(self, index)
     49             # A slice was given
     50             start, stop, stride = index.indices(self.num_feat)
---> 51             return [self._make_feature(fid) for fid in range(start, 
stop, stride)]
     52         else:
     53             raise TypeError('Integers and slices may only be used 
when indexing OGR Layers.')

c:\projects\python\env\ENV3\lib\site-packages\django\contrib\gis\gdal\layer.py 
in <listcomp>(.0)
     49             # A slice was given
     50             start, stop, stride = index.indices(self.num_feat)
---> 51             return [self._make_feature(fid) for fid in range(start, 
stop, stride)]
     52         else:
     53             raise TypeError('Integers and slices may only be used 
when indexing OGR Layers.')

c:\projects\python\env\ENV3\lib\site-packages\django\contrib\gis\gdal\layer.py 
in _make_feature(self, feat_id)
     88                     return feat
     89         # Should have returned a Feature, raise an IndexError.
---> 90         raise IndexError('Invalid feature id: %s.' % feat_id)
     91
     92     # #### Layer properties ####

IndexError: Invalid feature id: 0.



Again, I'm totally new to GeoDjango, so this could all be a user error.  I 
have restarted the tutorial 3 times and it always fails at the slice 
example.  The comment in the Traceback mentioning an IndexError has me 
wondering.

Thanks in advance.


-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/a8fb48a0-8bcd-41bb-a3ce-737c324d96cb%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to