Бештар

Таъсиси Шабакаи Нуқтаи Корбар муайян

Таъсиси Шабакаи Нуқтаи Корбар муайян


Ман кӯшиш мекунам баъзе кодҳо нависам (бо C #, аммо ҳама гуна забонҳо чунин хоҳанд кард), ки дар он ҷо корбар минтақаро дар асоси Min / Max Long / Lat муайян мекунад ва масофаи байни нуқтаҳои метрро муайян мекунад ва рамз ҷадвали дароз / латҳо (WGS84 / ESPG: 4326) барои сохтани шабака.

Чанде қабл ман баъзе рамзҳоро навишта будам, ки таҳти таассуроти ман ин корро кардаам, аммо пас аз каме таҳлили фаврӣ чунин нест хеле ба андозаи кор. Лутфан коди зеринро бинед:

даҳӣ minX = -74.002747535706M; даҳӣ minY = 40.722282672831M; maxX даҳӣ = -73.98386478424M; maxY даҳӣ = 40.733470232685M; масофаи даҳӣ = 100; даҳӣ х = 0,0М; даҳӣ y = 0.0M; дарозии даҳӣ = 0.0M; дарозии даҳӣ Афзоиш = 0.0M; афзоиши даҳӣPcentcent = 0.0M; int i = 0; даҳӣ yIncrement = масофа / (даҳӣ) 111111.111111; DataTable dt = ҷадвали нави DataTable (); dt.Columns.Add ("Longitude", Type.GetType ("System.Decimal")); dt.Columns.Add ("Latitude", Type.GetType ("System.Decimal")); y = minY; while (y 

Дар боло хеле хуб кор мекунад. Он дароз / латҳоеро, ки аз тарафи 100 м лат ҷудо шудаанд, вале дарозиаш 90 м бармегардонад. Вақте ки манмасофато 25 м, арзи ҷуғрофиро 25 метр ҷудо мекунад, аммо тӯлро 22,3 метр.

Таҳрир: Ҳалли версияи C Sharp дар асоси yosukesabai Ҷавоб:

радиуси int = 6378137; пи дукарата = Math.PI; deg2Rad дукарата = pi / 180; дукарата dst2Lat = 360 / (2 * pi * радиус); DataTable dt = ҷадвали нави DataTable (); dt.Columns.Add ("ID", typeof (int)); dt.Columns.Add ("Longitude", Type.GetType ("System.Decimal")); dt.Columns.Add ("Latitude", Type.GetType ("System.Decimal")); х = minX; y = minY; дар ҳоле (y 

Ҳар гуна кӯмак дар ин ҷо хеле муфид хоҳад буд!

Бо эҳтиром

ОМ


Муносибати ASPMapper-ро ба даст гирифт, аммо ба ҷои мустақилона математика, бастаи геодезиро аз PROJ.4 истифода бурд (python binding pyproj, http://code.google.com/p/pyproj/).

аз pyproj воридоти Geod minX = -74.002747535706 # бо дараҷаҳои minY = 40.722282672831 maxX = -73.98386478424 maxY = 40.733470232685 масофа = 100 # дар метрҳо g = Geod (ellps = 'WGS84') coords = [] lon, lat = minX, minY while lat 

Бознигарӣ

аз математикаи воридоти pi, cos minX = -74.002747535706 # дар дараҷа minY = 40.722282672831 maxX = -73.98386478424 maxY = 40.733470232685 масофа = 100 # дар метр # радиуси замин, ба касе нагӯед, ки ман wgs84-ро истифода набарам: pr = 6378137 deg2rad = pi / 180 # омил барои табдилдиҳии метр ба дараҷаи амиқи dst2lat = 360 / (2 * pi * r) координатҳо = [] # бо LL кунҷи лон оғоз, lat = minX, minY # март ба самти шимол ҳангоми lat 

Боз таҳрир карда шуд

Акнун ман кӯшиш кардам, ки эксцентриситети заминро, ки дар WGS84 муайян шудааст, ба ҷои тақрибан соҳа дохил кунам. Дар шимол / ҷануб, ман дақиқии хеле хуб гирифтам (7 рақам ва ё он қадар), аммо дар хатти арзи ман то ҳол 4 рақамро аниқ гирифтааст ...

аз математикаи воридотӣ pi, cos, sin, sqrt minX = -74.002747535706 # дар дараҷа minY = 40.722282672831 maxX = -73.98386478424 maxY = 40.733470232685 maxY = 40.733470232685 масофа = 100 # дар метр # меҳвари асосӣ ва баръакси ҳамворкунии замин, Ҳоло ман WGS a, invf = 6378137.0, 298.257223563 # омили табдили байни дараҷа ва радианҳо deg2rad = pi / 180 # эксцентриситети замин f = 1 / invf e = sqrt (f * (2-f)) # куватураи меридионалӣ дар паҳнои миёнаи тамоми қуттии midY =. 5 * (minY + maxY) r_meridional_mid = a * (1 - e * e) / ((1 - (e * sin (midY * deg2rad)) ** 2) ** 1.5) # factor барои табдилдиҳии метр ба дараҷаи амиқ , дар латтаи миёнаи dst2lat_mid = 360 / (2 * pi * r_meridional_mid) coords = [] # бо LL кунҷи lon оғоз, lat = minX, minY # marsh Northward while lat 

Таҷдиди назар (ислоҳи радиуси калсории каҷии муқаррарӣ)

Фаҳмид, ки чаро ман радиуси каҷшавии оддиро буридаам (формуларо хато нусхабардорӣ кардам). Онро ислоҳ карданд ва тӯлонӣ бо натиҷаҳо бо Proj.4 мувофиқи 9 рақам мувофиқат мекунанд. Инчунин ман арзи ҷадидро бо роҳи ҳисоб кардани радиуси каҷшавии меридионалӣ дар миёнаи арзи миёнаи ҳуҷайра "беҳтар кардам", на миёнаи арзи тамоми қуттӣ. Ин ҳанӯз ҳам тахмин аст, роҳи дуруст бояд интегралии эллиптикӣ ё чизеро истифода барад. Вақте ки ман ба самти шимол ҳаракат мекунам, хато дар самти тӯлонӣ ҷамъ мешавад ва дар вуруди намуна бо ишора ба proj.4 бо дақиқии 6 рақамӣ мустаҳкам карда мешавад.