parameters: (self, lat_lng, N=NB_CLOSEST, from_keys=None, grid=True, double_check=True)
docstring: Concept close to ``findNearPoint``, but here we do not
          look for the things radius-close to a point,
          we look for the closest thing from this point, given by
          latitude/longitude.
  
          :param lat_lng:   the lat_lng of the point (a tuple ``(lat, lng)``)
          :param N:         the N closest results wanted
          :param from_keys: if ``None``, it takes all keys in consideration, \
              else takes ``from_keys`` iterable of keys to perform \
              ``findClosestFromPoint``. This is useful when we have names and \
              have to perform a matching based on name and location \
              (see ``fuzzyFindNearPoint``).
          :param grid:    boolean, use grid or not
          :param double_check: when using grid, perform an additional check on \
              results distance, this is useful because the grid is \
              approximate, so the results are only as accurate as the grid size
          :returns:       an iterable of ``(distance, key)`` like \
              ``[(3.2, 'SFO'), (4.5, 'LAX')]``
  
          >>> point = (43.70, 7.26) # Nice
          >>> list(geo_a.findClosestFromPoint(point))
          [(5.82..., 'NCE')]
          >>> list(geo_a.findClosestFromPoint(point, N=3))
          [(5.82..., 'NCE'), (30.28..., 'CEQ'), (79.71..., 'ALL')]
          >>> list(geo_t.findClosestFromPoint(point, N=1))
          [(0.56..., 'frnic')]
          >>> # Corner case, from_keys empty is not used
          >>> list(geo_t.findClosestFromPoint(point, N=2, from_keys=()))
          []
          >>> list(geo_t.findClosestFromPoint(None, N=2))
          []
  
          No grid.
  
          >>> list(geo_o.findClosestFromPoint(point, grid=False))
          [(0.60..., 'NCE@1')]
          >>> list(geo_a.findClosestFromPoint(point, grid=False))
          [(5.82..., 'NCE')]
          >>> list(geo_a.findClosestFromPoint(point, N=3, grid=False))
          [(5.82..., 'NCE'), (30.28..., 'CEQ'), (79.71..., 'ALL')]
          >>> list(geo_t.findClosestFromPoint(point, N=1, grid=False))
          [(0.56..., 'frnic')]
  
          Custom keys as search domain.
  
          >>> keys = ('frpaz', 'frply', 'frbve')
          >>> list(geo_t.findClosestFromPoint(point,
          ...                                 N=2,
          ...                                 grid=False,
          ...                                 from_keys=keys))
          [(482.84..., 'frbve'), (683.89..., 'frpaz')]
docstring_summary: Concept close to ``findNearPoint``, but here we do not
          look for the things radius-close to a point,
          we look for the closest thing from this point, given by
          latitude/longitude.
docstring_tokens: Concept close to findNearPoint but here we do not look for the things radius - close to a point we look for the closest thing from this point given by latitude / longitude .
function: def findClosestFromPoint(self, lat_lng, N=NB_CLOSEST, from_keys=None, grid=True, double_check=True):
          """
          Concept close to ``findNearPoint``, but here we do not
          look for the things radius-close to a point,
          we look for the closest thing from this point, given by
          latitude/longitude.
  
          :param lat_lng:   the lat_lng of the point (a tuple ``(lat, lng)``)
          :param N:         the N closest results wanted
          :param from_keys: if ``None``, it takes all keys in consideration, \
              else takes ``from_keys`` iterable of keys to perform \
              ``findClosestFromPoint``. This is useful when we have names and \
              have to perform a matching based on name and location \
              (see ``fuzzyFindNearPoint``).
          :param grid:    boolean, use grid or not
          :param double_check: when using grid, perform an additional check on \
              results distance, this is useful because the grid is \
              approximate, so the results are only as accurate as the grid size
          :returns:       an iterable of ``(distance, key)`` like \
              ``[(3.2, 'SFO'), (4.5, 'LAX')]``
  
          >>> point = (43.70, 7.26) # Nice
          >>> list(geo_a.findClosestFromPoint(point))
          [(5.82..., 'NCE')]
          >>> list(geo_a.findClosestFromPoint(point, N=3))
          [(5.82..., 'NCE'), (30.28..., 'CEQ'), (79.71..., 'ALL')]
          >>> list(geo_t.findClosestFromPoint(point, N=1))
          [(0.56..., 'frnic')]
          >>> # Corner case, from_keys empty is not used
          >>> list(geo_t.findClosestFromPoint(point, N=2, from_keys=()))
          []
          >>> list(geo_t.findClosestFromPoint(None, N=2))
          []
  
          No grid.
  
          >>> list(geo_o.findClosestFromPoint(point, grid=False))
          [(0.60..., 'NCE@1')]
          >>> list(geo_a.findClosestFromPoint(point, grid=False))
          [(5.82..., 'NCE')]
          >>> list(geo_a.findClosestFromPoint(point, N=3, grid=False))
          [(5.82..., 'NCE'), (30.28..., 'CEQ'), (79.71..., 'ALL')]
          >>> list(geo_t.findClosestFromPoint(point, N=1, grid=False))
          [(0.56..., 'frnic')]
  
          Custom keys as search domain.
  
          >>> keys = ('frpaz', 'frply', 'frbve')
          >>> list(geo_t.findClosestFromPoint(point,
          ...                                 N=2,
          ...                                 grid=False,
          ...                                 from_keys=keys))
          [(482.84..., 'frbve'), (683.89..., 'frpaz')]
          """
          if from_keys is None:
              from_keys = iter(self)
  
          if grid and not self.hasGrid():
              raise ValueError('Attempting to use grid, but grid is None')
  
          if grid:
              for dist, thing in self._ggrid.findClosestFromPoint(lat_lng=lat_lng,
                                                                  N=N,
                                                                  double_check=double_check,
                                                                  from_keys=from_keys):
                  yield dist, thing
  
          else:
              iterable = self._buildDistances(lat_lng, from_keys)
  
              for dist, thing in heapq.nsmallest(N, iterable):
                  yield dist, thing
function_tokens: def findClosestFromPoint ( self , lat_lng , N = NB_CLOSEST , from_keys = None , grid = True , double_check = True ) : if from_keys is None : from_keys = iter ( self ) if grid and not self . hasGrid ( ) : raise ValueError ( 'Attempting to use grid, but grid is None' ) if grid : for dist , thing in self . _ggrid . findClosestFromPoint ( lat_lng = lat_lng , N = N , double_check = double_check , from_keys = from_keys ) : yield dist , thing else : iterable = self . _buildDistances ( lat_lng , from_keys ) for dist , thing in heapq . nsmallest ( N , iterable ) : yield dist , thing