'Compare geographic value of data with its initial value.'

def _has_changed(self, initial, data):

    try:
        data = self.to_python(data)
        initial = self.to_python(initial)
    except ValidationError:
        return True
    if (initial and data):
        data.transform(initial.srid)
        return (not initial.equals_exact(data, tolerance=1e-06))
    else:
        return (bool(initial) != bool(data))
