What is a coordinate reference system in GIS? How is it different from a projection system? - gis

We hear a lot about CRS in GIS. I am working with QGIS and whenever I add a layer I need to specify the CRS but what I am confused about what exactly is a CRS and how is it different projection system. Why do countries have their own CRS and how is it determined?

If I understood the question correctly, most APIs use the WGS84 format to specify geographical coordinates, which is briefly explained in this Wikipedia article. Basically, the coordiantes are polar coordinates referring to an ellipsoid whose center is located at earth's center of gravity.

The earth is a sphere, and not a completely round one. However we would still like it as if it was flat to make proper maps and make measurements.
For example, using WGS84 on a map of Norway would make it look horribly distorted.
that is why different regions have their own projections for their own cartographic needs.
I found a good definition of a CRS here. For al intends and purposes it is the same as its projection.

Related

Calculate length of road in a Polygon

I have this interesting challenge in my work, i have shape files of road networks, and another shape-File containing area boundaries, is there any tool that i can use to get length of roads that lies inside each polygon?
I have access to both QGIS and ArcGIS.
This is probably better asked on gis stackoverflow.
That said, this is a multi-stage problem. I'd suggest something like:
Clip the roads layer by the polygon layer, keeping the polygon id for each road.
Measure the length of the now-clipped roads.
Sum up the road lengths, grouping by the polygon_id
Join the now-measured,-summed-and-clipped roads layer back to the polygon layer.
This will give you what you want.
If you don't know how to use QGIS/ArcGIS, try googling for tutorials (or get work to splurge on training). There are plenty that cover the above functions.

Whitch is right :spherical area or cartesian area

I am asking a theoretical question here. I was comparing the areas calculated by MapInfo with the ones calculated by ArcGIS and I always add differences. When Googling that, I ended-up to that link explaining the differences :
Area calculation MapInfo/FME. Basically, the default method for MapInfo uses spherical while the defaut method for ArcGIS is cartesian. When I changed the default parameter of both GIS, I ended-up having the results of the other GIS, so both are correct.
But now, whitch result is better or I'd rather say « righter », spherical or cartesian?
Thanks
In simple terms, spherical area takes account of the curvature of the surface of the earth whereas cartesian measurements are calculated as if the objects were on a flat plane. Generally speaking this means that spherical measurements should be more accurate.

How to detect water on google maps

Is it possible to determine if a gps point is in water or near(not including elevation) . From what I have seen it doesn't seem possible. I had an idea of somehow getting the gps fence of water bodies and checking if the point lays in the fence. Sounds good but I can't find gps coordinate fences. If any one have any other ideas or a place to get those fences it would be great.
You can get the GPS fence for water from OpenStreetMap.
Then you do a point in polygon operation, optionally you put all polygons in
a spatial search structure, like a quad tree, for a fast polygon search nearby the lat,lon point.
You can start here. and later read more how to identify water in OpenStreetMap
A solution that works on small areas of waters, worldwide, would use much storage space If you concentrate on some countries this should work.
I found that the article is a very interesting approach.
Using google static maps to draw just some pixels around your coordinates, and then check whether its blue or not blue.
You can set a custom unique colour for "water" as a parameter to the google static map, which makes it easy for you to determine if it matches water or not

compute a shape from a list of geographical coordinates

I have an App that displays thousands of Pin annotations on a google map using geo coordinates (lat/long in degree).
In some circumstances I would like to replace the Pin annotations with an overlay that will represent the shape of my geographical area covered by my thousands of Pin.
I'm looking for an algorithm where the input is the list of geo coordinate of my Pin annotations and the output will be an ordered list of geo coordinates that I will use to create the overlay on the google map. For sure the best would be java/objective-C code if it exists :-)
I looked on internet and found articles related to Graham convex hull algorithm but it seems not so easy to use and I don't know if it really works with Lat/Long?
Any help will be really appreciated.
Regards,
Sébastien.
i believe this is what you're looking for:
http://en.wikipedia.org/wiki/Gift_wrapping_algorithm

How to solve discrepancy between 3rd party coordinates and google map?

I have a set of coordinates data from 3rd party provider. However when I plot those coordinates on google maps with annotations, the annotated points are not exactly on the position they should be. For example, some points should be placed on the road, however they are placed slightly off the road.
My question is, how to solve this kind of discrepancy?
Thanks!
Coordinates (lat and long), by themselves, do not describe a position on the Earth. You need a third piece of information, called the datum. The datum for google maps is WGS84. The datum establishes such things as where 0,0 is on the Earth's surface.
If you've received coordinates, and those coordinates are based on a different datum, then they will not plot correctly on Google Maps.
On the other hand, if the points came from any kind of mobile device (even if it is using WGS84), there are inherent inaccuracies in such measurements (thankfully generally down to < 5m for GPS these days, I believe) that mean that they will not align 100%.