경계 아웃 :위도 구글 맵에서 경계에서 데이터를 얻을 수 엔티티 프레임 워크를 사용할 때 예외를 다음 얻을
FormatException을 : 24201 : 위도 값은 -90에서 90도 사이 여야합니다.
POLYGON((81.9882716924738 140.187434563007,21.5587046599696 140.187434563007,21.5587046599696 -40.1641279369925,81.9882716924738 -40.1641279369925,81.9882716924738 140.187434563007))
나는 다른 사람도 같은 문제가 있다는 것을 알 수 있지만,이 문제를 해결할만한 것을 찾지 못했습니다. 포인트의 첫 번째 좌표는 위도이고 두 번째 좌표는 경도입니다. 그리고 아무도 90 이상이 아닙니다. 왜이 오류가 발생합니까? 나는 lat와 lng를 바꿔 치기를 시도했지만 같은 문제가있다. 데미안으로
var poly = FindByBoundingBox(northEastLat, northEastLng, southWestLat, southWestLng);
DbGeography polygon = DbGeography.FromText(poly, 4326);
var parksWithinPolygon = dbCtx.SiteList.Where(p =>
p.PolygonCenter.Intersects(polygon)).Select(p=>p.SiteName).ToList();
가 첫 번째 문제는 SQL Server가 경도를 먼저 다음 lattitude을 기대하고 있다는 것입니다 상태 :
이
은 실패 라인입니다. 그러면 또 다른 오류가 발생하여 다른 문제로 리디렉션됩니다."인스턴스가 유효하지 않아이 작업을 완료 할 수 없습니다."
최선의 방법은 다각형을 만드는 방법/순서입니다. 누구든지 SQL 서버의 다각형에 Google 경계를 매핑하는 데 성공 했습니까? 간단히 말해 Google지도 경계 내에서 데이터 (데이터에 포인트 열이 있음)를 가져 오려고합니다. 그것을 냈
public string FindByBoundingBox(double northEastLat, double northEastLng, double southWestLat, double southWestLng)
{ //Create poylgon of bounding box
System.Globalization.CultureInfo customCulture = (System.Globalization.CultureInfo)System.Threading.Thread.CurrentThread.CurrentCulture.Clone();
customCulture.NumberFormat.NumberDecimalSeparator = ".";
System.Threading.Thread.CurrentThread.CurrentCulture = customCulture;
var bboxWKT = string.Format("POLYGON(({1} {0},{1} {2},{3} {2},{3} {0},{1} {0}))", northEastLat, northEastLng, southWestLat, southWestLng);
return bboxWKT;
}
"나는 lat와 lng를 교환했지만 같은 문제가 있습니다." SQL'GEOGRAPHY' WKT 표현은'long long'이 아닌'long lat'를 사용합니다. –
나는 그 일을 시도했다. 그렇지만 나는 얻는다 :이 작업은 인스턴스가 유효하지 않기 때문에 완료 될 수 없다. MakeValid를 사용하여 인스턴스를 유효한 인스턴스로 변환합니다. MakeValid가 기하학 인스턴스의 포인트를 약간 이동시킬 수 있습니다. –
POLYGON ((180 89.8489730732467,180 -80.2507546123243, -180 -80.2507546123243, -180 89.8489730732467,180 89.8489730732467)) –