Add Grid.gridify() constructor
- the purpose of this constructor method is to generate all `Pixel`s for a `Grid` that have at least one `Address` assigned to them - fix missing `UniqueConstraint` in `Grid` class => it was not possible to create two `Grid`s with the same `.side_length` in different cities - change the `City.viewport` property into two separate `City.southwest` and `City.northeast` properties; also add `City.total_x` and `City.total_y` properties for convenience
This commit is contained in:
parent
a1cbb808fd
commit
776112d609
10 changed files with 224 additions and 57 deletions
|
|
@ -1,6 +1,5 @@
|
|||
"""Provide the ORM's `Address` model."""
|
||||
|
||||
|
||||
import sqlalchemy as sa
|
||||
from sqlalchemy import orm
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
|
@ -93,7 +92,7 @@ class Address(meta.Base):
|
|||
def location(self) -> utils.Location:
|
||||
"""The location of the address.
|
||||
|
||||
The returned `Location` object relates to `.city.viewport.southwest`.
|
||||
The returned `Location` object relates to `.city.southwest`.
|
||||
|
||||
See also the `.x` and `.y` properties that are shortcuts for
|
||||
`.location.x` and `.location.y`.
|
||||
|
|
@ -103,7 +102,7 @@ class Address(meta.Base):
|
|||
"""
|
||||
if not hasattr(self, '_location'): # noqa:WPS421 note:b1f68d24
|
||||
self._location = utils.Location(self.latitude, self.longitude)
|
||||
self._location.relate_to(self.city.as_xy_origin)
|
||||
self._location.relate_to(self.city.southwest)
|
||||
return self._location
|
||||
|
||||
@property
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue