मेरे पास दो स्तंभों (वास्तविक प्रकार) के लिए एक तालिका हैक्रमशः अक्षांश और देशांतर। मैं जानना चाहूंगा कि क्या ये बिंदु बेल्जियम में स्थित हैं, सीधे एक SQL क्वेरी (पोस्टग्रेएसक्यूएल) से। मैंने अजगर (जियोपी) में पहले से ही कुछ चीजें देखी हैं लेकिन अनुरोधों की संख्या सीमित है (geopy.exc.GeocoderServiceError: HTTP त्रुटि 429: बहुत सारे अनुरोध ) ...
कोई उपाय ? सधन्यवाद
उत्तर:
उत्तर № 1 के लिए 1आप इसे सीधे PostGIS में PostGIS एक्सटेंशन के साथ कर सकते हैं। आपको एक तालिका में बेल्जियम के लिए आकार को स्टोर करने की आवश्यकता होगी।
कॉल करने का कार्य है ST_CONTAINS, जो कि सही या गलत रिटर्न देता है, अगर पहली ज्यामिति में दूसरा होता है।
SELECT layer_pt.* FROM layer_belgium, layer_pt WHERE ST_Contains(layer_belgium.geom, layer_pt.geom);
पहला ज्यामिति बेल्जियम के आकार का होगा और दूसरा आपका बिंदु होगा। आपको केवल बेल्जियम प्राप्त करने के लिए क्वेरी को प्रतिबंधित करना पड़ सकता है आपके पास अन्य देश होने चाहिए।
चूँकि आपके पास एक बिंदु ज्यामिति नहीं है, लेकिन केवल इसका समन्वय है, तो आपको भी करना होगा बिंदु ज्यामिति बनाएं उड़ान पर।
SELECT layer_pt.* FROM layer_belgium, layer_pt WHERE ST_Contains(layer_belgium.geom, ST_GeomFromText("POINT(" || layer_pt.y || " " || layer_pt.x || ")", 4326));
क्या आपको PostGIS के साथ अधिक सहायता की आवश्यकता है, इस पर एक नज़र डालें जीआईएस StackExchange