এসকিউএল-তে জাভাস্ক্রিপ্ট সম্পর্কিত, সম্ভবত আপনি কীভাবে এটি পরিচালনা করবেন:
SELECT FromX,
FromY,
CASE WHEN FromX > 180 THEN NULL ELSE FromX * 0.017453292519943295 * 6378137.0 END AS mercatorX_lon2,
CASE WHEN FromY > 90 THEN NULL ELSE 3189068.5 * LOG((1.0 + SIN(FromY * 0.017453292519943295)) / (1.0 - SIN(FromY * 0.017453292519943295))) END AS mercatorY_lat2
FROM TABLENAME
আমি মনে করি নিম্নলিখিতটি আপনার প্রথম প্রশ্নের উত্তর দেবে। এটির জন্য বেশ কিছুটা ত্রুটি পরীক্ষা করা প্রয়োজন। সহায়তা করতে, আপনি এখানে মূল সমীকরণটি খুঁজে পেতে পারেন: http://www.colorado.edu/geography/graft/notes/datum/gif/molodens.gif
--fromTheta :column --radians
--fromLamda :column --radians
--fromH :column --meters
DECLARE @fromA float = 6378206.4 --radius of earth, meters
DECLARE @fromF float =1.0/294.9786982 --Flattening
DECLARE @toA float =6378137.0 --radius of earth, meters
DECLARE @toF float = 1.0/298.257223563 --Flattening
DECLARE @dA float = @toA - @fromA --change in equatorial radius
DECLARE @dX float = -8.0 --change in X, meters
DECLARE @dY float = 160.0 --change in Y, meters
DECLARE @dZ float = 176.0 --change in Z, meters
DECLARE @dF float = @toF-@fromF --change in flattening
DECLARE @fromES float = 2.0*@fromF - @fromF*@fromF --first eccentricity squared
DECLARE @bda float = 1.0-@fromF --polar radius divided by equatorial radius
--RM = (@fromA*(1-@fromES)/POWER(1-@fromES*sin(fromTheta)*sin(fromTheta), 1.5))
--RN = (@fromA/SQRT(1.00-@fromES*sin(fromTheta)*sin(fromTheta)))
SELECT
((((-@dX*sin(fromTheta)*cos(fromLamda)-@dY*sin(fromTheta)*sin(fromLamda))+@dZ*cos(fromTheta))+@dA*(@fromA/SQRT(1.00-@fromES*sin(fromTheta)*sin(fromTheta)))*@fromES*sin(fromTheta)*cos(fromTheta)/@fromA)+@df*((@fromA*(1-@fromES)/POWER(1-@fromES*sin(fromTheta)*sin(fromTheta), 1.5))/@bda+(@fromA/SQRT(1.00-@fromES*sin(fromTheta)*sin(fromTheta)))*@bda)*sin(fromTheta)*cos(fromTheta))/((@fromA*(1-@fromES)/POWER(1-@fromES*sin(fromTheta)*sin(fromTheta), 1.5)) + fromH) AS deltaTheta,
(-@dX*sin(fromLamda)+@dY*cos(fromLamda))/((((@fromA/SQRT(1.00-@fromES*sin(fromTheta)*sin(fromTheta))) +fromH) * cos(fromTheta)) AS deltaLamda,
@dX*cos(fromTheta)*cos(fromLamda)+@dY*cos(fromTheta)*sin(fromLamda)+@dZ*sin(fromTheta)-@da*@fromA/(@fromA/SQRT(1.00-@fromES*sin(fromTheta)*sin(fromTheta)))+@dF*@bda*(@fromA/SQRT(1.00-@fromES*sin(fromTheta)*sin(fromTheta)))*sin(fromTheta)*sin(fromTheta) AS deltaH
FROM TABLENAME
সম্পাদনা করুন: একটি দম্পতি ভেরিয়েবল যা কলামের নাম, এবং অনুপস্থিত কমা এবং প্রথম বন্ধনী হওয়া উচিত।
সম্পাদনা করুন: আরও একটি প্রথম বন্ধনী।
আমি এই সূত্রটি পরীক্ষা করেছি এবং এটি আরকিজিআইএস ট্রান্সফর্মের বিরুদ্ধে এলোমেলো পয়েন্টগুলি ব্যবহার করে কাজ করে। মনে রাখবেন যে আপনার ইউনিটগুলি ফুট / ডিগ্রিতে হতে পারে। এছাড়াও মনে রাখবেন যে এই ফলাফলগুলি ডেল্টাস, সুতরাং আপনাকে চূড়ান্ত ফলাফলগুলি পেতে আপনার মানগুলির সাথে এটি যুক্ত করতে হবে।