why arc measure value is in only milimeters? I change unit type to meters, but arc measure value is still in milimeters.
milimeters
meters
I would expect a arc value in meters
Related
I have a list of lat/long points which form a path on the surface of the earth.
I have another point on the surface of the earth and I want to find the shortest distance from that point to a point that falls on the path.
While I could approximate the surface of the earth as a plane, accuracy is important.
The distance between points on the path could be anywhere from 1-1000m. The distance to the point not on the path is from 1-50m. The maximum acceptable error is 0.1m.
Any method of calculating this is acceptable, whether assuming a plane, sphere, or the real shape of the earth as long as the error would not exceed 0.1m for any point on land.
This question is marked language agnostic to encourage answers from people not familiar with the language used. The implementation will be in Dart.
It sounds like you need to calculate the Great Circle Distance across the surface of the earth. A Great Circle calculation permits the calculation of distance along the earth's surface between two arbitrary latitudes and longitudes.
A trivial example of a Great Circle calculation would be to migrate along the Earth's surface along the line of equator (zero degrees latitude). Each degree of longitude of migration along that line (for instance from [0 deg N, 90 deg W] to [0 deg N to 91 deg W]) equates to 1/360th of 40,070km, or 111.306km. Moving between two latitudes and two longitudes requires transformation of coordinates and is outside the scope of this quick note.
Summary and equations found here:
https://en.wikipedia.org/wiki/Great-circle_distance
The accuracy you are seeking of 0.1m requires further refinement; using a sphere to approximate the shape of the Earth will limit the accuracy to perhaps 0.5% (see paragraph from Wikipedia, below). Put another way, a 0.5% error of two points 1000 km apart would be 5000 m.
A more formal and precise calculation will use the true shape of the earth, known as a geoid. This is determined by gravitational measurements and is updated from time to time by the geodesic community.
It is possible to determine one's absolute position on Earth to +/- 0.1m (or better) with advanced GPS surveying techniques, such as RTK or satellite correction services (e.g. Omnistar), but determining the path distance to that accuracy is not the same thing. A survey-quality receiver has corrections built into it for current geoids so that it can translate the lat/long/height calculation it makes using GPS signals to the current reference geoid used by the surveying / geodesic community.
You may not actually require 0.1m accuracy for your application; very few applications require 0.1m absolute accuracy over any distance except (for example) geographic determinations of movement in the Earth's surface. Relative accuracy is more important; e.g. measuring the same point at different times. It is more important to know how much a seismic fault moved relative to its position yesterday or last week, or whether a critical point on a pipeline has moved 2 cm to the north in the past year.
I hope this helps.
Cheers
GP
Per Wikipedia:
So long as a spherical Earth is assumed, any single formula for distance on the Earth is only guaranteed correct within 0.5% (though better accuracy is possible if the formula is only intended to apply to a limited area). [7]
I came across a dataset which has Latitude values in the range (0,181.763) i.e. minimum latitude is 0 degree and maximum latitude is 181.763 degree and Longitude values in the range (228.722,242.008) i.e. minimum latitude is 228.722 degree and maximum latitude is 242.008 degree. Is there some way by which I may confine the latitude and longitude's to correct boundaries?
well if they are spherical coordinates, long 181.763deg points in the same direction as -178.237deg or 361.763deg, depending on the conventions used
to transform latitude ranges of (228.722,242.008) to (-90,90) the transformation matrix to use is ((x-228.722)/0.073811)-90 for each point x. for example 229.3deg gives -82.169deg
it could be that you are using slightly scaled (elliptical) polar coordinates and you can transform them back by division...
I am storing a point as latitude and longitude in a Mysql server. They are both float(10,6). Given a radius, say 100 yards or 100 meters, how can I calculate points around the center. I was thinking of using GIS but I heard it is incomplete or very limited in functionality.
1) Tranform the lat/lon to a cartesian based coordinate system of units meter,
the tranformed point is now at (x,y)
2) Use school mathemathics (polar coordinates) to calculate the points:
2a) create points on circle at (0,0) with polar coordinates (r* sin (phi), r* cos(phi)), r in meters, phi in radians
2b) add (x,y) to all that resulting points, to move the circle points from center (0,0) to (x,y)
3) tranform all points back to lat/lon
I'm working on a simulator that plots the flight path of an aircraft on Google Maps.
The simulator is not aware that the latitude is only defined between -90 and +90 degrees and the longitude between -180 and +180 deg. As a result of this, the flight path may include points beyond the map boundaries. Exceeding in longitude is not an issue as it still plots correctly (a point at longitude x and x+360 is the same), but the latitude is a problem.
Is there any way of telling Google Maps to keep the points between the correct boundaries and plot them correctly?
Otherwise, do you have any ideas of where to find functions that do so?
Longitude, latitude and elevation are a bad coordinate system for a flight simulator, because the mapping presents singularities i.e. there are points infinitely close on the earth that have very different coordinates. For example where you're close to one of the poles longitude variation speed can become arbitrarily big compared to airplane speed. When standing exactly on the pole the longitude doesn't even make sense.
A better solution is to use an XYZ coordinate system for the simulator and only convert to longitude/latitude and elevation for plotting. If you can approximate the earth to a sphere for your use case the computation of this transformation is trivial... otherwise things can get much more complex depending on how accurate you want it to be.
That said it's still possible to give "a" meaning to a point with latitude slightly outside the range -90...90 by extending it over the pole...
if latitude < -90:
latitude = -180 - latitude
longitude = longitude + 180
if latitude > 90:
latitude = 180 - latitude
longitude = longitude + 180
but using this coordinate system for navigating is a very bad idea (the same point in space can have multiple triplets of coordinates).
If your simulator doesn't know that the maximum value for latitude is 90 degrees it is broken and needs to be fixed. Google Maps works correctly for valid/possible values of latitude and longitude.
I am not clearly understanding the extent parameter in GIS applications.
for ex, In mapserver map file we are using
NAME "CGI-CONTEXT-DEMO"
STATUS ON
SIZE 400 300
**EXTENT -2200000 -712631 3072800 3840000**
UNITS METERS
IMAGECOLOR 255 255 255
IMAGETYPE png
here extent means lower left x,y and upper right x,y.
but long,lat values are not used here , then what is this value? How it is arrived?
Extent is simply an area(square) which is specified with left lower and right upper x and y. In your example it doesn't look like lon lat because it's just a different coordinate system.
The minimum bounding rectangle (xmin, ymin and xmax, ymax) defined by coordinate pairs of a data source. All coordinates for the data source fall within this boundary.
Source: http://support.esri.com/en/knowledgebase/GISDictionary/term/extent (GIS dictionary)