পোস্টজিআইএস ব্যবহার করে বিদ্যমান টেবিলে দ্রাঘিমাংশ / দ্রাঘিমাংশ স্থানাঙ্কগুলি থেকে পয়েন্ট তৈরি করা হচ্ছে?


10

আমি বিদ্যমান সারণীর দ্রাঘিমাংশ এবং অক্ষাংশ কলামগুলি ব্যবহার করে একটি পয়েন্ট তৈরি করতে চাই ।
এখানে ডকুমেন্টেশন করার জন্য একটি লিঙ্ক ST_MakePoint

এখানে আমার টেবিল:

CREATE TABLE sysinst.bio (  
    oid INTEGER PRIMARY KEY,  
    longitude FLOAT,  
    latitude FLOAT,  
        geom GEOMETRY(POINT, 26913)
);

জ্যামিতি কলাম যুক্ত করা হচ্ছে:

SELECT AddGeometryColumn ('sysinst', 'bio', 'geom', 26913, 'POINT', 2);

এখানে আমার জিজ্ঞাসা:

UPDATE sysinst.bio SET geom = ST_SetSRID(ST_MakePoint(longitude, latitude), 26913);

কিউজিআইএস-এ দেখা যাওয়ার সময় পয়েন্টগুলি ভুলভাবে প্লট করা হলেও কোনও ত্রুটি ফিরে পাওয়া যায়নি।

কারণ (-97.5959, 21.1922), আমি গ্রহন করি(-109.4896, 0.0002)

কোন পরামর্শ?

যদি আরও সহজ উপায় থাকে তবে আমি আরও দক্ষতার সাথে এটি করতে প্রস্তুত।


আমি কোয়েরি নিয়ে সমস্যাটি দেখছি না। সম্ভবত আপনি কিছু অংশে সমস্যাটি সনাক্ত করার চেষ্টা করতে পারেন - সম্ভবত কিউজিআইএস অংশটি বাদ দেওয়ার চেষ্টা করুন, এবং পোস্টগিসের জন্য কেবল কমান্ড লাইনটি ব্যবহার করবেন?
ব্র্যাডহার্ডস

হতে পারে আমি বুঝতে পারছি না, তবে আপনি মনে করছেন দ্রাঘিমাংশ অক্ষাংশ স্থানাঙ্ক (-97, 21) ডিগ্রিতে, একটি সিআরএস যা ইউটিএম ভিত্তিক, এবং মিটার ব্যবহার করছে। যদি আপনি এটিকে SRID 26918 হিসাবে ঘোষণা করছেন, তবে দীর্ঘ / ল্যাট মানগুলি অবশ্যই সেই সিআরএসে থাকা উচিত। ল্যাং / ল্যাট মানগুলি যদি ডিগ্রীতে থাকে তবে আপনাকে জ্যামিতিটি ST_SetSRID (MakePoint (...), 4326) হিসাবে তৈরি করতে হবে তারপরে স্তরটি 26913 এ রূপান্তর করুন
মীখা

@ মিচা, আপনার উত্তর হিসাবে আপনার মন্তব্য যুক্ত করা উচিত। আমি আশা করি উপযুক্ত এসআরআইডি ওপিএস সমস্যার সমাধান করবে। এটি অন্তর্ভুক্ত করতে সহায়ক হতে পারে এবং কীভাবে একটি এস 07 ট্রান্সফর্ম যুক্ত করতে হয় তার উদাহরণ ।
কাতাহদিন

উত্তর:


16

হতে পারে আমি বুঝতে পারছি না, তবে আপনি মনে করছেন দ্রাঘিমাংশ অক্ষাংশ স্থানাঙ্ক (-97, 21) ডিগ্রিতে, একটি সিআরএস যা ইউটিএম ভিত্তিক, এবং মিটার ব্যবহার করছে। যদি আপনি এটিকে SRID 26918 হিসাবে ঘোষণা করছেন, তবে দীর্ঘ / ল্যাট মানগুলি অবশ্যই সেই সিআরএসে থাকা উচিত। যদি লম্বা / ল্যাট মানগুলি ডিগ্রীতে থাকে তবে আপনাকে জ্যামিতিটি ST_SetSRID (MakePoint (...), 4326) হিসাবে তৈরি করতে হবে তারপর স্তরটি 26913 এ রূপান্তর করতে হবে So সুতরাং, যদি আপনার স্তরটি দরকার হয় তবে এগুলি একসাথে রেখে দিন putting 26913 এ, তবে আপনার দ্রাঘিমাংশ / অক্ষাংশ কলামগুলি সিআরএস 4326 এর সাথে ডিগ্রিতে রয়েছে then

UPDATE sysinst.bio SET geom = ST_Transform(ST_SetSRID(ST_MakePoint(longitude, latitude), 4326),26913);

সাহায্যের জন্য ধন্যবাদ. আমার আগে এই সম্পর্কে ভাবা উচিত ছিল ...
জাচ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.