本文整理汇总了Python中models.City.point方法的典型用法代码示例。如果您正苦于以下问题:Python City.point方法的具体用法?Python City.point怎么用?Python City.point使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类models.City
的用法示例。
在下文中一共展示了City.point方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: run_city
# 需要导入模块: from models import City [as 别名]
# 或者: from models.City import point [as 别名]
def run_city(verbose=True, step=10, begin=0, end=0):
import csv
filename = os.path.join(settings.BASE_PATH, 'apps', 'world', 'data', 'cities.csv')
reader = csv.reader(open(filename, 'rb'), delimiter=',', quotechar="'")
for row in reader:
c = City()
c.name = row[4]
c.capital = bool(int(row[9]))
c.world_city = bool(int(row[12]))
c.mega_city = bool(int(row[13]))
c.point = Point(float(row[22]), float(row[21]))
#don't save the city if a country can't be found for it
try:
c.country = CountryBorder.objects.get(iso3=row[17])
except :
continue
try:
c.state = StateBorder.objects.get(name=row[18])
except :
try:
c.state = StateBorder.objects.get(mpoly__contains=c.point)
except :
pass
c.sqkm = int(row[40])
topleft = Point(float(row[48]), float(row[55]))
topright = Point(float(row[51]), float(row[55]))
bottomleft = Point(float(row[48]), float(row[52]))
bottomright = Point(float(row[51]), float(row[52]))
c.mpoly = MultiPolygon(Polygon(LinearRing(topleft, topright, bottomright, bottomleft, topleft)))
c.save()
print c.name
示例2: test02_proxy
# 需要导入模块: from models import City [as 别名]
# 或者: from models.City import point [as 别名]
def test02_proxy(self):
"Testing Lazy-Geometry support (using the GeometryProxy)."
#### Testing on a Point
pnt = Point(0, 0)
nullcity = City(name='NullCity', point=pnt)
nullcity.save()
# Making sure TypeError is thrown when trying to set with an
# incompatible type.
for bad in [5, 2.0, LineString((0, 0), (1, 1))]:
try:
nullcity.point = bad
except TypeError:
pass
else:
self.fail('Should throw a TypeError')
# Now setting with a compatible GEOS Geometry, saving, and ensuring
# the save took, notice no SRID is explicitly set.
new = Point(5, 23)
nullcity.point = new
# Ensuring that the SRID is automatically set to that of the
# field after assignment, but before saving.
self.assertEqual(4326, nullcity.point.srid)
nullcity.save()
# Ensuring the point was saved correctly after saving
self.assertEqual(new, City.objects.get(name='NullCity').point)
# Setting the X and Y of the Point
nullcity.point.x = 23
nullcity.point.y = 5
# Checking assignments pre & post-save.
self.assertNotEqual(Point(23, 5), City.objects.get(name='NullCity').point)
nullcity.save()
self.assertEqual(Point(23, 5), City.objects.get(name='NullCity').point)
nullcity.delete()
#### Testing on a Polygon
shell = LinearRing((0, 0), (0, 100), (100, 100), (100, 0), (0, 0))
inner = LinearRing((40, 40), (40, 60), (60, 60), (60, 40), (40, 40))
# Creating a State object using a built Polygon
ply = Polygon(shell, inner)
nullstate = State(name='NullState', poly=ply)
self.assertEqual(4326, nullstate.poly.srid) # SRID auto-set from None
nullstate.save()
ns = State.objects.get(name='NullState')
self.assertEqual(ply, ns.poly)
# Testing the `ogr` and `srs` lazy-geometry properties.
if gdal.HAS_GDAL:
self.assertEqual(True, isinstance(ns.poly.ogr, gdal.OGRGeometry))
self.assertEqual(ns.poly.wkb, ns.poly.ogr.wkb)
self.assertEqual(True, isinstance(ns.poly.srs, gdal.SpatialReference))
self.assertEqual('WGS 84', ns.poly.srs.name)
# Changing the interior ring on the poly attribute.
new_inner = LinearRing((30, 30), (30, 70), (70, 70), (70, 30), (30, 30))
ns.poly[1] = new_inner
ply[1] = new_inner
self.assertEqual(4326, ns.poly.srid)
ns.save()
self.assertEqual(ply, State.objects.get(name='NullState').poly)
ns.delete()