A mobile location system comprising: a global navigation satellite systems, GNSS, processor; a microelectromechanical systems, MEMS, processor, wherein the MEMS processor is an inertial measurement unit that comprises at least one accelerometer and at least one gyroscope; a location processor placed in a vehicle; a memory device that stores a plurality of instructions, which when executed by the location processor, causes the location processor to be configured to: upon the detection of a first predetermined event: receive a plurality of data streams from the GNSS processor; receive a plurality of second data streams from the MEMS processor; convert the plurality of data streams from the GNSS processor and the plurality of second data streams from the MEMS processor into a plurality of final coordinate data, wherein when a GPS signal received by the GNSS processor is poor, the location processor is further configured to assign a lower weight to the data streams from the GNSS processor and a higher weight to the second data streams from the MEMS processor; transmit, to a geomapping server, the plurality of final coordinate data; if the transmitted plurality of final coordinate data is associated with a legal parking zone: receive, from the geomapping server, a legal parking zone message that the plurality of final coordinate data is associated with the legal parking zone; transmit, to the geomapping server, a parking session initiation message to initiate a parking session; transmit, to the geomapping server, a parking session end message to end the parking session upon detection of a second predetermined event; and receive, from the geomapping server, a parking session end confirmation message. a global navigation satellite systems, GNSS, processor; a microelectromechanical systems, MEMS, processor, wherein the MEMS processor is an inertial measurement unit that comprises at least one accelerometer and at least one gyroscope; a location processor placed in a vehicle; a memory device that stores a plurality of instructions, which when executed by the location processor, causes the location processor to be configured to: upon the detection of a first predetermined event: receive a plurality of data streams from the GNSS processor; receive a plurality of second data streams from the MEMS processor; convert the plurality of data streams from the GNSS processor and the plurality of second data streams from the MEMS processor into a plurality of final coordinate data, wherein when a GPS signal received by the GNSS processor is poor, the location processor is further configured to assign a lower weight to the data streams from the GNSS processor and a higher weight to the second data streams from the MEMS processor; transmit, to a geomapping server, the plurality of final coordinate data; if the transmitted plurality of final coordinate data is associated with a legal parking zone: receive, from the geomapping server, a legal parking zone message that the plurality of final coordinate data is associated with the legal parking zone; transmit, to the geomapping server, a parking session initiation message to initiate a parking session; transmit, to the geomapping server, a parking session end message to end the parking session upon detection of a second predetermined event; and receive, from the geomapping server, a parking session end confirmation message. receive a plurality of data streams from the GNSS processor; receive a plurality of second data streams from the MEMS processor; convert the plurality of data streams from the GNSS processor and the plurality of second data streams from the MEMS processor into a plurality of final coordinate data, wherein when a GPS signal received by the GNSS processor is poor, the location processor is further configured to assign a lower weight to the data streams from the GNSS processor and a higher weight to the second data streams from the MEMS processor; transmit, to a geomapping server, the plurality of final coordinate data; if the transmitted plurality of final coordinate data is associated with a legal parking zone: receive, from the geomapping server, a legal parking zone message that the plurality of final coordinate data is associated with the legal parking zone; transmit, to the geomapping server, a parking session initiation message to initiate a parking session; transmit, to the geomapping server, a parking session end message to end the parking session upon detection of a second predetermined event; and receive, from the geomapping server, a parking session end confirmation message. receive, from the geomapping server, a legal parking zone message that the plurality of final coordinate data is associated with the legal parking zone; transmit, to the geomapping server, a parking session initiation message to initiate a parking session; transmit, to the geomapping server, a parking session end message to end the parking session upon detection of a second predetermined event; and receive, from the geomapping server, a parking session end confirmation message.