In struct LatitudeLongitude, the latitude and longitude ranges are set as follows:
Latitude: -90 to 90 degrees
Longitude: -90 to 90 degrees
This way, the latitude is correct, but the longitude doesn't cover half the Earth.
Typically, the longitude range is -180 to 180 degrees.
This range is also used when retrieving coordinates in a map app.
For example, Korea is between 124 and 132 degrees east longitude.
So, I don't think the IsValid() function can return an accurate boolean value.