forked from expo/troggle
Entrance locations showing lat long screwups
This commit is contained in:
@@ -10,7 +10,7 @@ from django.template import loader
|
||||
|
||||
import settings
|
||||
from troggle.core.models.logbooks import QM
|
||||
from troggle.core.models.survex import SurvexStation
|
||||
from troggle.core.models.survex import SurvexStation, utmToLatLng
|
||||
from troggle.core.models.troggle import DataIssue, TroggleModel
|
||||
from troggle.core.utils import TROG, writetrogglefile
|
||||
|
||||
@@ -123,7 +123,7 @@ class Cave(TroggleModel):
|
||||
pass
|
||||
else:
|
||||
self.official_name.lower()
|
||||
return Path(settings.URL_ROOT) / self.url # not good Django style.. NEEDS actual URL
|
||||
return Path(settings.URL_ROOT) / self.url # not good Django style? NEEDS actual URL
|
||||
|
||||
def url_parent(self):
|
||||
if self.url:
|
||||
@@ -232,7 +232,7 @@ class Entrance(TroggleModel):
|
||||
alt = models.TextField(blank=True, null=True)
|
||||
approach = models.TextField(blank=True, null=True)
|
||||
bearings = models.TextField(blank=True, null=True)
|
||||
easting = models.TextField(blank=True, null=True)
|
||||
easting = models.TextField(blank=True, null=True) # apparently? manually entered not calculated
|
||||
entrance_description = models.TextField(blank=True, null=True)
|
||||
exact_station = models.TextField(blank=True, null=True)
|
||||
explorers = models.TextField(blank=True, null=True)
|
||||
@@ -240,14 +240,14 @@ class Entrance(TroggleModel):
|
||||
findability = models.CharField(max_length=1, choices=FINDABLE_CHOICES, blank=True, null=True)
|
||||
findability_description = models.TextField(blank=True, null=True)
|
||||
lastvisit = models.TextField(blank=True, null=True)
|
||||
lat_wgs84 = models.TextField(blank=True, null=True)
|
||||
lat_wgs84 = models.TextField(blank=True, null=True) # manually entered not calculated
|
||||
location_description = models.TextField(blank=True, null=True)
|
||||
long_wgs84 = models.TextField(blank=True, null=True)
|
||||
long_wgs84 = models.TextField(blank=True, null=True) # manually entered not calculated
|
||||
map_description = models.TextField(blank=True, null=True)
|
||||
marking = models.CharField(max_length=2, choices=MARKING_CHOICES)
|
||||
marking_comment = models.TextField(blank=True, null=True)
|
||||
name = models.CharField(max_length=100, blank=True, null=True)
|
||||
northing = models.TextField(blank=True, null=True)
|
||||
northing = models.TextField(blank=True, null=True) # apparently? manually entered not calculated
|
||||
other_description = models.TextField(blank=True, null=True)
|
||||
other_station = models.TextField(blank=True, null=True)
|
||||
photo = models.TextField(blank=True, null=True)
|
||||
@@ -410,6 +410,12 @@ class Entrance(TroggleModel):
|
||||
return ""
|
||||
|
||||
def latlong(self):
|
||||
"""Gets lat long assuming that it has to get it from the associated stations, but in fact the Entrance itself
|
||||
has easting/northing and lat/long fields which perhaps we should try first...
|
||||
"""
|
||||
if self.easting and self.northing:
|
||||
return utmToLatLng(33, float(self.easting), float(self.northing), northernHemisphere=True)
|
||||
|
||||
station = None
|
||||
if self.other_station:
|
||||
try:
|
||||
@@ -429,6 +435,17 @@ class Entrance(TroggleModel):
|
||||
if station:
|
||||
return station.latlong()
|
||||
|
||||
def lat(self):
|
||||
if self.latlong():
|
||||
return self.latlong()[0]
|
||||
else:
|
||||
return None
|
||||
|
||||
def long(self):
|
||||
if self.latlong():
|
||||
return self.latlong()[1]
|
||||
else:
|
||||
return None
|
||||
|
||||
def GetCaveLookup():
|
||||
"""A very relaxed way of finding probably the right cave given almost any string which might serve to identify it
|
||||
|
||||
@@ -67,7 +67,10 @@ class SurvexStation(models.Model):
|
||||
|
||||
def latlong(self):
|
||||
return utmToLatLng(33, self.x, self.y, northernHemisphere=True)
|
||||
|
||||
def lat(self):
|
||||
return utmToLatLng(33, self.x, self.y, northernHemisphere=True)[0]
|
||||
def long(self):
|
||||
return utmToLatLng(33, self.x, self.y, northernHemisphere=True)[1]
|
||||
import math
|
||||
|
||||
def utmToLatLng(zone, easting, northing, northernHemisphere=True): # move this to utils.py ?
|
||||
|
||||
@@ -284,6 +284,29 @@ def eastings(request):
|
||||
if e.lat_wgs84 or e.long_wgs84:
|
||||
ents.append(e)
|
||||
|
||||
for e in ents:
|
||||
try:
|
||||
ts = e.tag_station
|
||||
if ts:
|
||||
e.tag_ts = SurvexStation.objects.get(name=ts)
|
||||
print(f"{e} {e.tag_ts} {e.tag_ts.lat()} {e.tag_ts.long()}")
|
||||
|
||||
es = e.exact_station
|
||||
if es:
|
||||
e.tag_es = SurvexStation.objects.get(name=es)
|
||||
print(f"{e} {e.tag_es} {e.tag_es.lat()} {e.tag_es.long()}")
|
||||
|
||||
os = e.other_station
|
||||
if os:
|
||||
e.tag_os = SurvexStation.objects.get(name=os)
|
||||
print(f"{e} {e.tag_os} {e.tag_os.lat()} {e.tag_os.long()}")
|
||||
|
||||
except:
|
||||
e.tag_ss = None
|
||||
e.tag_es = None
|
||||
e.tag_os = None
|
||||
# print(f"exception for {e}")
|
||||
|
||||
stations = SurvexStation.objects.all()
|
||||
|
||||
return render(request, "eastings.html", {"ents": ents, "stations": stations})
|
||||
|
||||
Reference in New Issue
Block a user