Jest cała Stack Exchange Network dla GIS, a jeśli, jak ja, trzmieli w tam jako koder nie wiedząc, GIS, jesteś w na przejażdżkę:
https://gis.stackexchange.com/questions/48949/epsg-3857-or-4326-for-googlemaps-openstreetmap-and-leaflet
okazuje się, że to norma w mapowaniu („GIS”) o nazwie EPSG, a ludzie wydają się użyć „EPSG”, " EPSG SRID, "i" SRID "zamiennie, gdy się do niego odwołuje. W większości przypadków korzystania z GPS, jeśli mówisz o Ziemi (w tym o LatLngs, które dostajesz z Map Google), używasz EPSG SRID 4326, a jeśli mówisz o płaskiej mapie 2D (jak niestandardowa mapa Google) , mówisz o EPSG SRID 3857.
Jest też trochę malarkey o WGS, które możesz zignorować.
. NET szuka tylko rzeczywistego numeru identyfikacyjnego w identyfikatorze SRG EPSG. Byłoby bardzo pomocne, gdyby były to tylko stałe na DbGeography, takie jak:
public class DbGeography
{
public const int SridGps = 4326;
public const int Srid2dPlane = 3857;
Ale nie takie szczęście.
W każdym razie rozważ wprowadzenie stałych w swojej aplikacji, a nie tylko obrzucanie nieudokumentowaną liczbą magiczną. Nasza mała klasa pomocników:
public class GeoHelper
{
public const int SridGoogleMaps = 4326;
public const int SridCustomMap = 3857;
public static DbGeography FromLatLng(double lat, double lng)
{
// http://codepaste.net/73hssg
return DbGeography.PointFromText(
"POINT("
+ lng.ToString() + " "
+ lat.ToString() + ")",
SridGoogleMaps);
}
}