2011-08-06 12 views
8

मैं अपने आवेदन में पड़ोस डेटा प्राप्त करने की कोशिश कर रहा हूं, और मुझे उपयोग किए जा रहे डेटा के साथ समस्याएं आ रही हैं, जो मुझे here से मिली है।मैं शेपफ़ाइल के निर्देशांक कैसे बदल सकता हूं?

इस फ़ाइल में एक आकार का आकार है जिसमें सैन फ्रांसिस्को के पड़ोस हैं। मैं रेल फ्रेमवर्क पर रूबी चला रहा हूं, और मैं वर्तमान में आकारफाइल को पार्स करने के लिए GeoRuby का उपयोग कर रहा हूं।

कोड इस तरह दिखता है:

def self.run_import 
    shpfile = '/path/to/realtor_neighborhoods/realtor_neighborhoods' 
    ShpFile.open(shpfile) do |shp| 
    shp.each do |shape| 
     # This gets the first (and only) Polygon from each MultiPolygon 
     polygon = shape.geometry.geometries.first 
     puts polygon.inspect 
    end 
    end 
end 

कोड फ़ाइल को पार्स करने में सक्षम है, लेकिन मैं के रूप में व्याख्या निर्देशांक को समझने में असमर्थ हूँ। सभी अक्षरों में लाखों में मूल्य हैं, जब मैं वैध अक्षांश और देशांतर के लिए -180 और 180 के बीच निर्देशांक की अपेक्षा करता हूं। एक उदाहरण बिंदु पर एक नज़र डालें:

<GeoRuby::SimpleFeatures::Point:0x00000104566a08 @srid=4326, @with_z=false, \ 
    @with_m=false, @x=6015402.9999795845, @y=2114960.4999904726, @z=0.0, @m=0.0>, 

इन समन्वय मूल्यों का प्रारूप क्या है? मैं उन्हें उन मूल्यों में कैसे परिवर्तित कर सकता हूं जो मेरे लिए सार्थक हैं? (यानी एसआरआईडी 4326 < => WGS84 स्थानिक संदर्भ प्रणाली के आधार पर अक्षांश/देशांतर)

अग्रिम धन्यवाद!

उत्तर

6

डेटा आप आकार फ़ाइल से है projected geographic data है।

अपने प्रश्न से

ऐसा लगता है कि वास्तव में सिर्फ अक्षांश/देशांतर में अपने डेटा को देखना पसंद करेंगे लगता है। इसे प्राप्त करने के लिए आपको अपने डेटा को दोबारा लगाने की जरूरत है। मैं एक रूबी लड़का नहीं हूं, लेकिन एक त्वरित वेब खोज से पता चलता है कि भूगर्भी http://georuby.rubyforge.org/ को पुन: प्रक्षेपण का समर्थन नहीं करता है, हालांकि rgeo करता है। http://www.daniel-azuma.com/blog/archives/28

यदि आप नक्शा अनुमानों के बारे में और जानना चाहते हैं तो here देखें।

वैसे वहाँ जीआईएस (भौगोलिक सूचना प्रणाली) के लिए एक stackexchange साइट है विशेषज्ञों http://gis.stackexchange.com

+0

अधिक specifi

apt-get install gdal-bin

अपने शेपफ़ाइल के बारे में जानकारी प्राप्त करें कैली, आपको Proj.4 के माध्यम से बदलने की जरूरत है http://virtuoso.rubyforge.org/rgeo/RGeo/CoordSys/Proj4.html –

+0

आपको बहुत धन्यवाद, और मैं इसे पूरे दिन के लिए परीक्षण करने का प्रयास कर रहा हूं । मैं वास्तव में इसका परीक्षण नहीं कर सकता क्योंकि अब मैं इसमें चला गया हूं: https://github.com/dazuma/rgeo/issues/6 उम्मीद है कि मैं इसके आसपास काम कर सकता हूं और फिर अपना जवाब स्वीकार कर सकता हूं। – Larry

1

कहा जाता है मैंने देखा है यह अभी भी विचारों का एक लॉग हो रही है। मैं आरजीओ के साथ संघर्ष कर रहा था, लेकिन एक और समाधान है। यदि आप अपने रूबी कोड को निष्पादित करने से पहले/बाहर अपना रूपांतरण करने में सक्षम/तैयार हैं, तो ogr2ogr देखें।

नीचे यहाँ पर मेरी टिप्पणी में अधिक जानकारी के होते हैं: How Can I Use (Ruby) RGeo to Transform (Unproject) Coordinates

0

मैं इस सवाल में आए जैसा कि मैंने OSGB36 ब्रिटिश नेशनल ग्रिड प्रारूप से WGS84 प्रारूप करने के लिए किसी शेपफ़ाइल में आपूर्ति अंक को बदलने के लिए करना चाहता था (दशमलव डिग्री) । मैंने इसे समझने में काफी समय बिताया ताकि उम्मीद है कि यह कोड उपयोगी साबित होगा।

इस कोड ffi-ogr मणि का उपयोग करता है और GDAL पुस्तकालय की आवश्यकता है:

require 'ffi-ogr' 

data = OGR.read file_name 
new_spatial_ref = OGR.import_sr(4326, 'epsg') 

data.layers.each do |layer| 
    transformer = OGR::CoordinateTransformation.find_transformation(layer.spatial_ref, new_spatial_ref) 

    layer.features.each do |feature| 
    geometry = OGR::Tools.cast_geometry(feature.geometry) 
    geometry.transform(transformer) 

    # Do something with geometry here 
    end 
end 
0

मैं एक ही समस्या थी: अक्षांश/देशांतर मूल्यों का अनुमान geodata कन्वर्ट करने के लिए करना चाहता था।

ogr2ogr उपकरण अपेक्षा से उपयोग करना बहुत आसान था।

स्थापित करने के लिए:

ogrinfo data.shp -al -so

Convert अक्षांश/लांग और JSON:

ogr2ogr -f GeoJSON -t_srs WGS84 data.json data.shp

+0

मैं उपरोक्त एक ही आदेश के साथ प्रयास कर रहा हूं लेकिन खोलने में असमर्थ त्रुटि की त्रुटि प्राप्त कर रहा हूं, मेरे पास केवल आकार फ़ाइल है, इसे भी .shx और .dbf की आवश्यकता है। – Guru

संबंधित मुद्दे