24 lines
743 B
Python
24 lines
743 B
Python
|
from django.contrib.gis.geos.geometry import GEOSGeometry, wkt_regex, hex_regex
|
||
|
|
||
|
def fromfile(file_h):
|
||
|
"""
|
||
|
Given a string file name, returns a GEOSGeometry. The file may contain WKB,
|
||
|
WKT, or HEX.
|
||
|
"""
|
||
|
# If given a file name, get a real handle.
|
||
|
if isinstance(file_h, basestring):
|
||
|
file_h = open(file_h, 'rb')
|
||
|
|
||
|
# Reading in the file's contents,
|
||
|
buf = file_h.read()
|
||
|
|
||
|
# If we get WKB need to wrap in buffer(), so run through regexes.
|
||
|
if wkt_regex.match(buf) or hex_regex.match(buf):
|
||
|
return GEOSGeometry(buf)
|
||
|
else:
|
||
|
return GEOSGeometry(buffer(buf))
|
||
|
|
||
|
def fromstr(string, **kwargs):
|
||
|
"Given a string value, returns a GEOSGeometry object."
|
||
|
return GEOSGeometry(string, **kwargs)
|