Fóntais allmhairithe sonraí LayermappingLink to this heading
Soláthraíonn an rang:class: LayerMapping bealach chun ábhar comhaid sonraí spásúla veicteora (m.sh. comhaid chruthach) a mhapáil i samhlacha GeoDjango.
D'fhás an fóntais seo as riachtanais phearsanta an údair chun deireadh a chur leis an athrá cód a chuaigh chun geoiméadraí agus réimsí a tharraingt as ciseal veicteora, ag tiontú go córas comhordaithe eile (m.sh. WGS84), agus ansin a chur isteach i samhail GeoDjango.
SamplaLink to this heading
Teastaíonn foinse sonraí le tacaíocht ó GDAL uait, cosúil le comhaid chruthach (anseo táimid ag úsáid comhad cruth polygon simplí,
test_poly.shp, le trí ghné):
>>> from django.contrib.gis.gdal import DataSource
>>> ds = DataSource("test_poly.shp")
>>> layer = ds[0]
>>> print(layer.fields) # Exploring the fields in the layer, we only want the 'str' field.
['float', 'int', 'str']
>>> print(len(layer)) # getting the number of features in the layer (should be 3)
3
>>> print(layer.geom_type) # Should be 'Polygon'
Polygon
>>> print(layer.srs) # WGS84 in WKT
GEOGCS["GCS_WGS_1984",
DATUM["WGS_1984",
SPHEROID["WGS_1984",6378137,298.257223563]],
PRIMEM["Greenwich",0],
UNIT["Degree",0.017453292519943295]]
Anois sainmhínímid ár samhail Django comhfhreagrach (déan cinnte go n-úsáidtear: djadmin: migrate):
from django.contrib.gis.db import models class TestGeo(models.Model): name = models.CharField(max_length=25) # corresponds to the 'str' field poly = models.PolygonField(srid=4269) # we want our model in a different SRID def __str__(self): return "Name: %s" % self.nameÚsáid: aicme: LayerMapping chun na gnéithe go léir a bhaint agus iad a chur sa bhunachar sonraí:
>>> from django.contrib.gis.utils import LayerMapping
>>> from geoapp.models import TestGeo
>>> mapping = {
... "name": "str", # The 'name' model field maps to the 'str' layer field.
... "poly": "POLYGON", # For geometry fields use OGC name.
... } # The mapping is a dictionary
>>> lm = LayerMapping(TestGeo, "test_poly.shp", mapping)
>>> lm.save(verbose=True) # Save the layermap, imports the data.
Saved: Name: 1
Saved: Name: 2
Saved: Name: 3
Anseo, :class: LayerMapping d'athraigh na trí ghéiméadair ón gcomhaid cruth ina gcóras tagartha spásúil bunaidh (WGS84) go dtí an córas tagartha spásúil den tsamhail GeoDjango (NAD83). Mura sainmhínítear aon chóras tagartha spásúil don chiseal, bain úsáid as an eochairfhocal source_srs le a:class: ~django.contrib.gis.gdal.spatialReference chun réad ceann a shonrú.
Sraith Maping APILink to this heading
- class LayerMapping(model, data_source, mapping, layer=0, source_srs=None, encoding=None, transaction_mode='commit_on_success', transform=True, unique=True, using='default')Link to this definition
Is iad seo a leanas na hargóintí agus na heochairfhocail a d'fhéadfaí a úsáid le linn rudaí Layermapping` a chur isteach.
Argóint |
Cur síos |
|---|---|
``Samhail `` |
An tsamhail gheografach, ní sampla. |
|
An cosán chuig an gcomhad foinse sonraí le tacaíocht ó OGR (m.sh., comhad cruth). Glacann sé freisin le: class: django.contrib.gis.gdal.datasource cásanna. |
|
Foclóir: is teaghráin iad na heochracha a fhreagraíonn don réimse samhail, agus freagraíonn luachanna d'ainmneacha réimse teaghrán don ghné OGR, nó más réimse samhail is geografach é ansin ba chóir go bhfreagródh sé do chineál geoiméadrachta OGR, m.sh., |
Argóintí Eochair |
|
|---|---|
|
Innéacs an chiseal le húsáid ón bhFoinse Sonraí (réamhshocraithe go 0) |
|
Úsáid é seo chun an SRS foinse a shonrú de láimh (mar shampla, ní thagann comhad ``.prj ``le roinnt comhaid cruth). Glactar le teaghráin SRID, WKT nó PROJ sláimhir, agus:class: `django.contrib.gis.gdal.spatialReference rudaí. |
``ionchódú `` |
Sonraíonn ionchódú tacar carachtair na teaghráin i bhfoinse sonraí OGR. Mar shampla, is paraiméadair ionchódú bailí iad |
|
D'fhéadfadh sé a bheith |
|
Má shocraíonn sé seo go False, díchumasfar claochlú comhordaithe Is é sin le rá, cuirfear geoiméadraí isteach sa bhunachar sonraí gan mhodhnú óna staid bhunaidh san fhoinse sonraí. |
|
Ag leagan síos é seo don ainm, nó le cúpla ainmneacha, ón tsamhail a thugtar cruthófar samhlacha atá uathúil don ainm (í) ar leith amháin. Cuirfear geoiméadraí ó gach gné isteach sa bhailiúchán a bhaineann leis an tsamhail uathúil. Cuireann iallach ar an modh idirbheart a bheith |
|
Socraíonn an bunachar sonraí le húsáid agus sonraí spásúla á iompórtá Is é réamhshocraithe ``'default' ``. |
``save () ``Argóintí EochairfhocalLink to this heading
- LayerMapping.save(verbose=False, fid_range=False, step=False, progress=False, silent=False, stream=sys.stdout, strict=False)Link to this definition
Glacann an modh `save () ``le heochairfhocail freisin. Úsáidtear na heochairfhocail seo chun logáil aschuir a rialú, láimhseáil earráidí, agus chun raonta gnéithe ar leith
Argóintí Eochairfhocal |
Cur síos |
|---|---|
|
Is féidir é a shocrú le slisnacht nó tuple d'aitheantais ghné (tús, deireadh) le léarscáil ón bhfoinse sonraí. Is é sin le rá, cuireann an eochairfhocal seo ar chumas an úsáideora raon foshraith gnéithe a iompórtáil go roghnach san fhoinse sonraí geografacha. |
|
Nuair a shocraítear an eochairfhocal seo, clófar faisnéis stádais ag tabhairt líon na ngnéithe a phróiseáladh agus a shábháil go rathúil De réir réamhshocraithe, clófar faisnéis dul chun cinn gach 1000 gné a phróiseáiltear, áfach, féadfar an réamhshocrú seo a shárú tríd an eochairfhocal seo a shocrú le sláimhir don eatramh inmhianaithe |
|
De réir réamhshocraithe, clóitear fógraí earráide neamh-mharfach chuig sys.stdout`, ach féadfar an eochairfhocal seo a shocrú chun na fógraí seo a dhíchumasú. |
|
Má shocraítear é le sláimhir, tarlóidh idirbhearta ag gach eatramh céim. Mar shampla, má tharlódh sé |
|
Scríofar faisnéis stádais chuig an láimhseáil comhad seo. Réamhshocraithe chun sys.stdout` a úsáid, ach tacaítear le haon rud le modh |
``docht `` |
Scoirfidh forghníomhú na mapáil samhail ar an gcéad earráid a thagann chun cinn. Is é an t-iompar luach réamhshocraithe ( |
|
Má shocraítear é, clófar faisnéis ina dhiaidh sin gach samhail sábháil a fhorghníomhú ar an mbunachar sonraí. |
FabhtcheartúLink to this heading
Rith as cuimhneLink to this heading
Mar a thugtar faoi deara sa rabhadh ag barr an chuid seo, stóráilíonn Django gach ceist SQL nuair a bhíonn debug = true`. Socraigh debug = false ``i do shocruithe, agus ba cheart go stopfadh sé seo úsáid iomarcach cuimhne agus scripteanna ``LayerMapping á reáchtáil.
MySQL: earráid max_allowed_packetLink to this heading
Má thagann tú ar an earráid seo a leanas agus tú ag úsáid LayerMapping agus MySQL:
OperationalError: (1153, "Got a packet bigger than 'max_allowed_packet' bytes")
Ansin is é an réiteach luach an socrú max_allowed_packet a mhéadú i do chumraíocht MySQL. Mar shampla, d'fhéadfadh go mbeadh an luach réamhshocraithe rud íseal cosúil le meigabyte amháin - féadfar an socrú a mhodhnú i gcomhad cumraíochta MySQL (my.cnf `) sa chuid`` [mysqld] ``:
max_allowed_packet = 10M