GISarabia.org
PostGIS › الدليل الرسمي › 12. إضافات PostGIS › 12.1.4. دوال مُوحِّد العناوين
PostGIS 3.6 · Official Manual · ترجمة عربية

standardize_address

الصفحة الأصلية بالإنجليزية postgis.net ↗

الاسم

standardize_address — تُعيد صيغة stdaddr لعنوان مُدخل باستخدام جداول lex وgaz والقواعد.

المختصر

stdaddr standardize_address(text lextab, text gaztab, text rultab, text address);

stdaddr standardize_address(text lextab, text gaztab, text rultab, text micro, text macro);

الوصف

تُعيد صيغة stdaddr لعنوان مُدخل باستخدام اسم جدول lex table وأسماء جداول gaz table وrules table وعنوان.

الصيغة 1: تأخذ العنوان كسطر واحد.

الصيغة 2: تأخذ العنوان في جزأين: micro يتكون من السطر الأول القياسي للعنوان البريدي، مثل house_num street، وmacro يتكون من السطر الثاني القياسي للعنوان البريدي، مثل city, state postal_code country.

متاحة منذ: 2.2.0

تتطلب هذه الدالة الامتداد address_standardizer.

أمثلة

باستخدام امتداد address_standardizer_data_us

CREATE EXTENSION address_standardizer_data_us; -- only needs to be done once

الصيغة 1: عنوان أحادي السطر. لا تعمل جيدًا مع العناوين غير الأمريكية

SELECT house_num, name, suftype, city, country, state, unit  FROM standardize_address('us_lex',
                           'us_gaz', 'us_rules', 'One Devonshire Place, PH 301, Boston, MA 02109');
house_num |    name    | suftype |  city  | country |     state     |      unit
----------+------------+---------+--------+---------+---------------+-----------------
1         | DEVONSHIRE | PLACE   | BOSTON | USA     | MASSACHUSETTS | # PENTHOUSE 301

باستخدام الجداول المحزَّمة مع مُرمِّز tiger الجغرافي. لا يعمل هذا المثال إلا إذا كنت قد ثبّتّ postgis_tiger_geocoder.

SELECT *  FROM standardize_address('tiger.pagc_lex',
         'tiger.pagc_gaz', 'tiger.pagc_rules', 'One Devonshire Place, PH 301, Boston, MA 02109-1234');

لتسهيل القراءة سنعرض المخرجات باستخدام امتداد hstore، ويلزمك تثبيته بـ CREATE EXTENSION hstore;

SELECT (each(hstore(p))).*
 FROM standardize_address('tiger.pagc_lex', 'tiger.pagc_gaz',
   'tiger.pagc_rules', 'One Devonshire Place, PH 301, Boston, MA 02109') As p;
key     |      value
------------+-----------------
 box        |
 city       | BOSTON
 name       | DEVONSHIRE
 qual       |
 unit       | # PENTHOUSE 301
 extra      |
 state      | MA
 predir     |
 sufdir     |
 country    | USA
 pretype    |
 suftype    | PL
 building   |
 postcode   | 02109
 house_num  | 1
 ruralroute |
(16 rows)
                        

الصيغة 2: كعنوان من جزأين

SELECT (each(hstore(p))).*
 FROM standardize_address('tiger.pagc_lex', 'tiger.pagc_gaz',
   'tiger.pagc_rules', 'One Devonshire Place, PH 301', 'Boston, MA 02109, US') As p;
key     |      value
------------+-----------------
 box        |
 city       | BOSTON
 name       | DEVONSHIRE
 qual       |
 unit       | # PENTHOUSE 301
 extra      |
 state      | MA
 predir     |
 sufdir     |
 country    | USA
 pretype    |
 suftype    | PL
 building   |
 postcode   | 02109
 house_num  | 1
 ruralroute |
(16 rows)