एक अक्षांश / अकेला बिंदु के पोस्टगिस रेखापुंज मूल्य


13

मैं अपने PostGIS 2.0 डेटाबेस में एक झगड़ा रेखापुंज है। मैं एक निर्दिष्ट lat / lon बिंदु पर रेखापुंज का मान प्राप्त करना चाहता हूं।

मेरे पास है:

  • PostgreSQL-9.1
  • पोस्टगिस-2.0-svn रेखापुंज समर्थन के साथ
  • PostGIS में आयातित एक रेखापुंज इसकी SRID 3035 है

जवाबों:


11

आप ST_Transform () का उपयोग करके फ़्लर्ट पर raster CRS के लिए lat / lon बिंदु को रूपांतरित कर सकते हैं। संयुक्त, क्वेरी इस तरह दिखती है:

ST_Value(your_raster, ST_Transform(ST_SetSRID(ST_MakePoint(lon,lat),4326),3035))

5

फ़ंक्शन ST_value:

http://postgis.net/docs/RT_ST_Value.html

किसी रैस्टर वैल्यू को x, y या lat, lon दोनों में से एक बिंदु दिया जाता है।


यह काम करता है, लेकिन इस पृष्ठ में उदाहरण आपको EPSG: 3035 में अपनी क्वेरी को इनपुट करने के लिए मजबूर करते हैं, और मैं
अव्यक्त

4

जब ST_Value काम करता है, तब भी आपको स्थानिक रूप से इस बिंदु पर शामिल होने की आवश्यकता है:

SELECT ST_Value(your_raster.rast, ST_Transform(ST_SetSRID(ST_MakePoint(lon,lat),4326),3035))
FROM your_raster
WHERE ST_Intersects(your_raster.rast, ST_SetSRID(ST_MakePoint(lon,lat),4326),3035))

या एक तालिका के साथ:

SELECT ST_Value(your_raster.rast, ST_Transform(ST_SetSRID(ST_MakePoint(your_table.lon,your_table.lat),4326),3035))
FROM your_raster
JOIN your_table ON ST_Intersects(your_raster.rast, ST_SetSRID(ST_MakePoint(your_table.lon,your_table.lat),4326),3035))
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.