<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def from_json(payload):
 """ Build a ``GeoPoint`` instance from the specified JSON object. @param payload: JSON representation of a geographic location:: { "accuracy": decimal, "altitude": decimal, "bearing": decimal, "longitude": decimal, "latitude": decimal, "provider": string, "speed": decimal } where: * ``accuracy``: accuracy of the position in meters. * ``altitude``: altitude in meters of the location. * ``bearing``: bearing in degrees. Bearing is the horizontal direction of travel of the device, and is not related to the device orientation. It is guaranteed to be in the range ``[0.0, 360.0]``, or ``null`` if this device does not have a bearing. * ``latitude``: latitude-angular distance, expressed in decimal degrees (WGS84 datum), measured from the center of the Earth, of a point north or south of the Equator. * ``longitude``: longitude-angular distance, expressed in decimal degrees (WGS84 datum), measured from the center of the Earth, of a point east or west of the Prime Meridian. * ``provider``: code name of the location provider that reported the geographical location: * ``gps``: indicate that the location has been provided by a Global Positioning System (GPS). * ``network``: indicate that the location has been provided by an hybrid positioning system, which uses different positioning technologies, such as Global Positioning System (GPS), Wi-Fi hotspots, cell tower signals. * ``speed``: speed in meters/second over the ground, or ``null`` if this location does not have a speed. @return: a ``GeoPoint`` instance or ``None`` if the JSON payload is nil. """

        return payload and \
            GeoPoint(payload['longitude'],
                     payload['latitude'],
                     accuracy=payload.get('accuracy'),
                     altitude=payload.get('altitude'),
                     bearing=payload.get('bearing'),
                     fix_time=payload.get('fix_time'),
                     provider=payload.get('provider'),
                     speed=payload.get('speed'))