2012-10-30 12 views
14

मैं टूल का उपयोग करके OSM file को अपने पोस्टग्रेएसक्यूएल डेटाबेस (विंडोज़, पोस्टग्रेज़ संस्करण 9.2) में आयात करना चाहता हूं।osm2pgsql: फ़ंक्शन AddGeometryColumn मौजूद नहीं है

जब मैं कमांड

osm2pgsql.exe --create -d mydb artyom.xml -U myuser -W --style default.style 

निम्नलिखित चला मैं जर्मन से त्रुटि

SELECT AddGeometryColumn('planet_osm_point', 'way', 900913, 'POINT', 2); 
failed: FEHLER: Funktion addgeometrycolumn(unknown, unknown, integer, unknown, 
integer) existiert nicht 
LINE 1: SELECT AddGeometryColumn('planet_osm_point', 'way', 900913, ... 
      ^
HINT: Keine Funktion stimmt mit dem angegebenen Namen und den Argumenttypen ├╝b 
erein. Sie m├╝ssen m├Âglicherweise ausdr├╝ckliche Typumwandlungen hinzuf├╝gen. 

Error occurred, cleaning up 

अनुवाद मिलती है:

SELECT AddGeometryColumn('planet_osm_point', 'way', 900913, 'POINT', 2); 
failed: ERROR: Function addgeometrycolumn(unknown, unknown, integer, unknown, 
integer) doesn't exist 
LINE 1: SELECT AddGeometryColumn('planet_osm_point', 'way', 900913, ... 
      ^
HINT: No function matches the specified name and argument types. Maybe you need 
to make explicit casts. 

Error occurred, cleaning up 

कैसे मैं इसे ठीक कर सकते हैं?

+0

क्या आपने इस डेटाबेस में पोस्टजीआईएस स्थापित किया था? –

+0

मेनू "स्टार्ट" में एक पोस्टजीआईएस फ़ोल्डर है। क्या मुझे किसी विशेष डेटाबेस के लिए पोस्टजीआईएस को स्पष्ट रूप से स्थापित करने की आवश्यकता है? –

उत्तर

20

ऐसा लगता है कि आपने उस डेटाबेस में PostGIS समर्थन नहीं जोड़ा है जिसे आप osm2pgsql.exe पर उपयोग करने का प्रयास कर रहे हैं। the PostGIS installation documentation (2.0) देखें।

चूंकि आप पोस्टजीआईएस 2.0 का उपयोग कर रहे हैं, तो आप PostGIS लोड करने के लिए केवल CREATE EXTENSION postgis; पर सक्षम होना चाहिए। यह आदेश सुपरसियर के रूप में चलाया जाना चाहिए - आम तौर पर उपयोगकर्ता postgres। उपयोग करें:

psql -U postgres mydbname 

उपयोगकर्ता postgres के रूप में कनेक्ट करने के लिए।

ऐसा प्रतीत होता है कि कम से कम विंडोज osm2pgsql का निर्माण पोस्टजीआईएस 2.0 का समर्थन नहीं करता है - या लगभग छह महीने पहले नहीं, वैसे भी। ओएसएम गिटहब पर this issue report और instructions on how to set a PostGIS 2 database to be compatible with an osm2pgsql that expects PostGIS 1.x देखें। भविष्य के पाठकों को यह जांचना चाहिए कि आगे बढ़ने से पहले इन चरणों को वास्तव में आवश्यक है; यह संभावना है कि विंडोज के लिए osm2pgsql किसी बिंदु पर पोस्टजीआईएस 2 का समर्थन करने के लिए अपडेट किया जाएगा।

+0

जब मैं कमांड लाइन विंडो में 'सी: \ प्रोग्राम फ़ाइलें \ पोस्ट greSQL \ 9.2 \ bin \ psql "-d ccp-web -f postgis.sql --username = ccp-web-user' चलाता हूं, तो मुझे मिलता है 'psql जैसे कई त्रुटियां: postgis.sql: 6054: त्रुटि: वर्तमान लेनदेन रद्द कर दिया गया था, शेष आदेशों को अनदेखा कर दिया जाएगा। मैं उन्हें कैसे ठीक कर सकता हूं? –

+0

@DmitriPisarenko क्या आपके पास 'template_postgis' डेटाबेस है? इसके बजाय उस टेम्पलेट से डेटाबेस बनाएँ। यदि आप ऐसा नहीं करना चाहते हैं, तो क्या गलत है, त्रुटियों से कहना मुश्किल है। आपको * पहली * त्रुटि को देखने की आवश्यकता है।अतिरिक्त तर्क '-v ON_ERROR_STOP = 1' के साथ psql कमांड चलाने का प्रयास करें। –

+0

मैंने टेम्पलेट 'template_postgis_20' से डेटाबेस बनाया है। जब मैं '-v ON_ERROR_STOP = 1' के साथ कमांड चलाता हूं तो मुझे त्रुटि मिलती है' psql: C:/प्रोग्राम फ़ाइलें/PostgreSQL/9.2/share/contrib/postgis-2.0/postgis.sql: 47: त्रुटि: लगाकू के लिए कोई अनुमति नहीं c'। मैं इसे इस आदेश है कि विफल रहता है लगता है: 'बनाएं या समारोह spheroid_in (cstring) \t रिटर्न उपगोल \t की जगह '$ libdir/PostGIS-2.0', 'ellipsoid_in' \t भाषा 'सी' IMMUTABLE कठोर;' –

1

देर से लेकिन मैं इस सितंबर 16 को ठोकर खा गया। एसक्यूएल लाइन:

SELECT AddGeometryColumn('planet_osm_point', 'way', 900913, 'POINT', 2);

जरूरतों इस समारोह हस्ताक्षर के रूप में फिर से लिखा जाना चाहिए:

('catalog','schema','table','column',srid,'type',type_mod,boolean);

व्हाइट स्पेस असीमित है।

SELECT AddGeometryColumn('','','planet_osm_point', 'way', 900913, 'POINT', 2,true); 

चेक सही स्तंभ नाम जो मेरे संस्करण में 'geom' है के लिए वास्तविक सम्मिलित बयानों में से एक: तो निम्नलिखित की तरह कुछ चाल करना चाहिए।

सुनिश्चित करें कि वर्चर्स उद्धृत किए गए हैं, पूर्णांक और बुलियन अनगिनत हैं और निश्चित रूप से सही मूल्य स्थानों पर हैं।

शुभकामनाएं।

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