एसडीई दृश्य और परत रजिस्टर करें


11

मैं एक ArcSDE Oracle RAC 10g के खिलाफ सरल विचार बना रहा हूं। मेरे SHAPE कॉलम SDO_GEOMETRY डेटाटाइप के हैं। आर्कएसडीई 9.3.1।

निम्नलिखित रूपरेखा के साथ मेरे पास कई बिंदु तालिकाएँ हैं:

आईडी (गाइड) नाम (स्ट्रिंग) शेप (शेप)

मैंने ओरेकल में इसे देखने के लिए एक सरल दृश्य बनाया है!

CREATE OR REPLACE VIEW VW_POINTS AS

    SELECT ID, Name, Shape from TABLE_A

        UNION ALL

    SELECT ID, Name, Shape from TABLE_B

        -- etc

ओरेकल में दृश्य ठीक बनाया गया है। मैंने इस दृश्य को कमांड लाइन के साथ पंजीकृत किया है:

sdetable -o create_view -T POINTS -t VW_POINTS -c Id, नाम, SHAPS आदि

ArcSDE दृश्य फिर से बनाया गया है, बस ठीक है। मैं इसका उपयोग करने के लिए आर्कोबजेक्ट्स का उपयोग कर सकता हूं, आदि। मुझे अब एक लेयर बनाने की आवश्यकता है। मैंने कमांड लाइन टूल, sdelayer -o रजिस्टर की कोशिश की है, लेकिन मुझे कोई सफलता नहीं मिली। यह मुझे एक संदेश देता है, जिसमें कहा गया है कि विचार सुपर नहीं होते हैं।

मुझे कई बार ऐसा करने की आवश्यकता होगी, कभी-कभी दृश्य के निर्माण के लिए जटिल वाक्यविन्यास का उपयोग करना।

समस्या क्या है? इन स्थानिक विचारों को SDE परतों के रूप में कैसे कल्पना कर सकते हैं (मुझे उन्हें संपादित करने की आवश्यकता नहीं है, बस उन्हें स्थानिक रूप से ArcMap के अंदर देखें)

इनपुट के लिए धन्यवाद!

संपादित करें

यह आपके डेलिगेट के लिए ArcMap में एक स्क्रीनशॉट है: P

आपकी खुशी के लिए आर्केस्टा स्क्रीनशॉट :

जैसा कि अनुरोध किया गया है, यहां वर्णन_ लंबा आता है

// create_view C: \ Users \ H> sdetable -o create_view -s server -i port -u user -p pass -T view_airspace_points -t vw_airspace_points_oracle -c "*"

इस बिंदु पर मैंने पंजीकरण से पहले संख्यात्मक (38,0) के रूप में कलाकारों सहित दृश्य पर दृश्य बदल दिया।

// रजिस्टर लेयर C: \ Users \ H> sdelayer -o register -l view_airspace_point, shape -C OBJECTID, USER - g RTREE -s server -i port -i user -p pass -ep-High

Oracle10g बिल्ड 2784 टीयू अक्टूबर 27 10:51:14 2009 के लिए ArcSDE 9.3.1

परत प्रशासन उपयोगिता

परत विवरण ....:

तालिका स्वामी ..........: SIGMAGIS2

तालिका का नाम ...........: VIEW_AIRSPACE_POINTS

स्थानिक स्तंभ .......: आकार

लेयर आईडी .............: 1398

SRID .................: 79

न्यूनतम आकार आईडी .....: 1

ऑफसेट ...............:

गलत: -180.000000

फालसे: -90.000000

सिस्टम यूनिट .........: 994200.000000

Z ऑफसेट ..............: 0.000000

Z इकाइयाँ ..............: 1.000000

उपाय की शुरुआत .......:

उपाय इकाइयाँ ........:

XY क्लस्टर सहिष्णुता ।: 2.0

स्थानिक सूचकांक ........:

पैरामीटर: SPIDX_RTREE

मौजूद: हाँ

सरणी प्रपत्र: -2,0,0

परत लिफाफा .......:

मिंक्स: -180.00000, मिंडी: -90.00000

अधिकतम: 180.00000, अधिकतम: 90.00000

संस्थाएँ .............: पी

परत प्रकार ...........: इन-लाइन स्थानिक प्रकार

निर्माण तिथि ........: 06/28/11 09:28:45

I / O मोड .............: सामान्य

ऑटोलॉकिंग ..........: सक्षम

परिशुद्धता .............: उच्च

उपयोगकर्ता विशेषाधिकार ......: का चयन करें, अद्यतन, इन्सर्ट, DELETE

समन्वय प्रणाली ....: GEOGCS ["देशांतर / अक्षांश [WGS 84]", DATUM ["WGS 84", SPHEROID ["WGS 84", 6378137.0,298.2572236363]], PRIMEM ["ग्रीनविच", 0.0], UNIT [] "दशमलव

डिग्री ", .0174532925199433]]

परत विन्यास ..: DEFAULTS


तो आपको एक परत फ़ाइल बनाने की आवश्यकता है?
DEWright

नहीं, मुझे जियोडेटाबेस के अंदर एक दृश्य बनाने की ज़रूरत है, जो एक फीचरक्लास की तरह काम करता है।
जॉर्ज सिल्वा

फिर आपको स्थानिक दृश्य बनाने की आवश्यकता है जैसा कि आप कहते हैं और मैं नीचे उल्लेख करता हूं; केवल एक ही कारण है कि मैं इसे नहीं दिखा सकता हूं क्योंकि एक स्थानिक परत अनुमतियों के लिए है। या तो ArcGIS / ArcSDE ने इसे ठीक से पंजीकृत नहीं किया; चूँकि यह केवल एक स्थानिक परत का उद्देश्य है, एक समान तरीके से स्थानिक और सारणीबद्ध डेटा में शामिल होना।
DEWright

जब आप अपने विचार पर 'sdetable -o description_long -t winoria -u sasha -p polar.bear -i esri_40' जैसा डिस्क्रिप्शन_लो चलाते हैं, तो आपको क्या परिणाम मिलते हैं? हमें यह देखने की जरूरत है कि क्या स्थानिक स्तंभ और इकाई प्रकार सही हो रहे हैं और संदर्भित हैं।
DEWright

1
डे अलर्ट के लिए धन्यवाद। मैंने सब कुछ सही ढंग से किया है, लेकिन अभी भी काम नहीं करता है। :( बहुत निराशा होती है। यह एक OpenSource स्टैक के साथ काफी आसानी से किया जा सकता है ।
जॉर्ज सिल्वा

जवाबों:


4

मेरे पास अतीत में यह (और इसी तरह की समस्याएं) थीं। यह हमेशा दो चीजों के लिए नीचे आया:

  1. स्थानिक तालिका में कुछ भ्रष्ट / अमान्य ज्यामिति थे। ArcMap के साथ समस्या यह है कि जैसे ही यह एक अवैध ज्यामिति पाता है यह प्रतिपादन बंद कर देगा।

  2. परत पंजीकरण गलत है। मैंने यह भी पाया कि sdelayer -o रजिस्टर हमेशा सही ढंग से काम नहीं करता है और आपको पंजीकरण प्रविष्टियों की 'मालिश' करनी होगी।

तो यह जाँचने के लिए कि क्या परत वैध है SDO_GEOM का उपयोग करें । VALIDATE_LAYER_WITH_CATEXT फ़ंक्शन। तब ArcSDE सत्यापन समारोह का उपयोग करें sdelayer -o feature_info -r अमान्य ... ArcSDE के अनुसार अमान्य सुविधाएँ प्राप्त करने के लिए। संभवतः selelayer -o सूची के साथ ( यहाँ देखें )

पंजीकरण की जांच के लिए, आपको आर्कएसडीई स्कीमा में वापस जाना होगा। पंजीकरण को नियंत्रित करने वाली सारणी हैं: SDE.LAYERS, SDE.TABLE_REGISTRY, SDE.COLUMN_REGISTRY, SDE.SPATIAL_REFERENCES और SDE.GEUMETETRY_COLUMNS। एक चाल मैं उपयोग करता हूं कि मेरे पास आमतौर पर एक 'आधार' परत होती है जो समान (जहां तक ​​ज्यामिति प्रकार संबंधित हैं और प्राथमिक कुंजी स्तंभ हैं) जो आर्कप में प्रदर्शित होता है। मैं फिर पंजीकरण रिकॉर्ड की तुलना करता हूं, जो प्रदर्शित करता है उस परत को बिटवेइन करता है और फिर ऐसा नहीं करता है। आप यह जानकर आश्चर्यचकित होंगे कि पूर्णांक कॉलम में 1 से क्या परिवर्तन होता है! :-)

COLUMN_REGISTRY पर एक टिप - आपको बस इतना करना है कि यह सुनिश्चित करना है कि प्राथमिक कुंजी कॉलम (SDE.TABLE_REGISTRY में ROWID_COLUMN के रूप में परिभाषित किया गया है) और स्थानिक स्तंभ सही हैं (या प्रदर्शित परत के समान)। अन्य सभी स्तंभों पर ध्यान न दें। यदि आप तालिका के स्वामी के रूप में लॉग इन किए गए ArcMap में परत जोड़ते हैं तो COLUMN_REGISTRY तालिका में अनुपलब्ध प्रविष्टियाँ अपने आप जुड़ जाएंगी।

मुझे बताएं क्या इससे मदद मिलती है!


इनपुट के लिए मेफोलिक धन्यवाद! मैं कल पहली बात यह कोशिश करूँगा! मुझे लगता है, आप सही हैं! धन्यवाद!
जॉर्ज सिल्वा

जवाब दिया यह विभिन्न प्रकार के पंजीकरणों के लिए काम करता है, लेकिन UNIONED के लिए नहीं। फिर भी, यह एक अद्भुत टिप है। जवाब के लिए धन्यवाद।
जॉर्ज सिल्वा

6

आप जो देख रहे हैं वह एक स्थानिक-दृश्य है , अब जो एकमात्र प्रमुख मुद्दा आपको यहां दिखाई देगा वह यह है कि आपको उन क्षेत्रों से सावधान रहने की आवश्यकता है जिन पर आप शामिल हो रहे हैं। यह एक बहुत अच्छी प्रक्रिया है, मैं इसे उस स्थान पर उपयोग करता हूं जहां मैंने अपने डीबी को सामान्य स्थानिक डेटा के साथ बात करने के लिए सामान्यीकृत किया है।

    sdetable -o create_view -T emp_region_view -t "employees,world.regions" 
-c "employees.name,employees.emp_id,world.regions.reg_id,world.regions.rname,world.regions.region"
-a "employee,eid,rid,region,area" -w "employees.emp_id = world.regions.emp_id"
-s myodbserver -i sde:oracle11g:ora1 -u gdb -p gdb.bdg

यह आपको अपने रास्ते पर अच्छी तरह से पहुंचना चाहिए जो आप चाहते हैं। कुंजी आपके फ़ील्ड को सही मैप करने के लिए मिल रही है। मैं केवल उस दृश्य को करता हूं, जिसकी मुझे न्यूनतम आवश्यकता है, फिर एक बार यूआई का उपयोग करने के लिए उस दृश्य को संपादित करने के लिए एसडीई में पंजीकृत करें जो मेरे अधिक बारीक अनाज वाले ट्वीक करने के लिए है।


नमस्कार डे मैंने इस विधि की कोशिश की है, लेकिन यह काम नहीं करता है। जो मैं समझता हूं कि आर्कएसडीई एक "क्रिएट फॉरेस्ट व्यू" कमांड बनाता है, कॉलम को हाथ से बताते हैं और केवल उन कॉलम को रजिस्टर करते हैं जिन्हें आप क्लॉज में घोषित करते हैं। मैंने एक खाली दृश्य बनाने की कोशिश की है (ज्यामितीय परिभाषा प्राप्त करने के लिए केवल एक फीचर वर्ग का उपयोग करके) और इसे दूसरी परिभाषा के लिए प्रतिस्थापित किया। ठीक है, मैं इसे आर्कपैक के माध्यम से क्वेरी कर सकता हूं, लेकिन ज्यामिति को मानचित्र में नहीं दिखाया गया है।
जॉर्ज सिल्वा

1
यदि आप ArcCatalog से ArcMap के स्थानिक दृश्य को खींचते हैं, तो यह ज्यामितीय डेटा के साथ नहीं दिखता है?
ब्रिट वेस्कॉट

जैसा कि पहले कहा गया है, परत आर्कपार्क या आर्ककॉस्टिक्स पूर्वावलोकन में प्रदर्शित नहीं होती है, लेकिन इसे सही ज्यामिति प्रकार की परत के रूप में सूचीबद्ध किया गया है और यह आर्कपैम में क्वेरी योग्य है।
जॉर्ज सिल्वा

1
जब आप अपने विचार पर 'sdetable -o description_long -t winoria -u sasha -p polar.bear -i esri_40' जैसा डिस्क्रिप्शन_लो चलाते हैं, तो आपको क्या परिणाम मिलते हैं? हमें यह देखने की जरूरत है कि क्या स्थानिक स्तंभ और इकाई प्रकार सही हो रहे हैं और संदर्भित हैं।
DEWright

मैं परिणाम यहाँ पोस्ट करूँगा!
जॉर्ज सिल्वा

3

एक चीज जो मुझे याद आ रही है वह एक अद्वितीय पूर्णांक स्तंभ है जिसका उपयोग आर्क आईडी ऑब्जेक्ट आईडी के लिए कर सकता है। एक एकल अनुक्रम बनाने की कोशिश करें जो इस आईडी कॉलम के लिए अद्वितीय मान बनाए रखेगा। फिर अनुक्रम स्तंभ के साथ आईडी कॉलम को पॉप्युलेट करने के लिए प्रत्येक टेबल पर इन्सर्ट ट्रिगर बनाएं।

अपने sdelayer -o रजिस्टर कमांड में, कुंजी शब्द USER के साथ अपने पूर्णांक आईडी कॉलम में -C ध्वज को सेट करना सुनिश्चित करें ताकि esri आपके लिए कॉलम को प्रबंधित करने का प्रयास न करे।


1
नमस्ते jrockers, पंजीकरण की प्रक्रिया ठीक काम करती है। धागे का अपना जवाब पढ़ें। मैं एक Oracle जनरेटेड कॉलम (ROWNUM) का उपयोग संख्यात्मक (38,0) के रूप में कर रहा हूं। टिप के लिए धन्यवाद, लेकिन मैं पहले ही कोशिश कर चुका हूं।
जॉर्ज सिल्वा

3

मैंने उत्तरों को स्कैन किया है और किसी ने भी नहीं देखा है कि संघ प्रश्न आर्कटिक के साथ स्थानिक विचारों के लिए एक समस्या है। ऐसा इसलिए है क्योंकि आप डुप्लिकेट ऑब्जेक्ट के साथ लगभग निश्चित रूप से समाप्त हो जाएंगे। आंतरिक जुड़ाव प्रश्नों के बारे में भी यही सच है जहाँ शामिल होने की भविष्यवाणी एक अद्वितीय "जनक" रिकॉर्ड की गारंटी नहीं देती है। या तो मामले में हालांकि दृश्य सभी पंजीकरण आवश्यकताओं के अनुरूप हो सकता है, यह सही ढंग से व्यवहार नहीं करेगा


इनपुट के लिए धन्यवाद। यदि आप मेरे द्वारा लिखे गए दृश्य पर एक नज़र डालते हैं, तो यह Oracles ROWNUM का उपयोग करके मक्खी पर OIDs उत्पन्न करता है। अद्वितीय होने की गारंटी दी जाती है।
जॉर्ज सिल्वा

1
यदि डेटा arcmap (उदाहरण के लिए) में प्रदर्शित किया जा रहा है तो मैं पंक्तिगत उपयोग के बारे में 100% आश्वस्त नहीं हूं। Rownum oracle क्वेरी सेट का एक फ़ंक्शन है। इसलिए हर बार जब आप किसी क्वेरी को निष्पादित करते हैं, तो आप 1 से शुरू होने वाले उपद्रवियों का एक नया सेट प्राप्त करते हैं। इसका मतलब यह हो सकता है कि प्रत्येक पैन / ज़ूम आदि 1 के एक ऑब्जेक्ट का उत्पादन करेंगे और कैश्ड ऑब्जेक्ट का उपयोग करने की उम्मीद करने वाली कोई भी प्रक्रिया विफल हो जाएगी क्योंकि बाद के प्रश्न एक नया उत्पादन करेंगे। परिणाम। क्या आपने अपने लिए ऑब्जेक्ट कॉलम जोड़ने के लिए आर्कजीआईएस पाने के लिए एक विकल्प के रूप में क्वेरी टेबल टूल को देखा है?
रॉब मैकफर्सन

2

इस धागे को देखने वाले सभी का धन्यवाद।

वैसे यह प्रक्रिया थोड़ी जटिल है, लेकिन एक जटिल क्वेरी को एक परत के रूप में पंजीकृत करना संभव है, यह सिर्फ कुछ चालाक विचार लेता है। मुझे यकीन नहीं है कि अभी तक इस पर पूर्णता के क्या प्रभाव हैं, लेकिन मैं इसे अद्यतन रखने की कोशिश करूंगा। मैं ArcMap में अंक देखने के लिए समस्याओं के साथ भी हूं, लेकिन मैं आगे की जांच करूंगा।

सबसे पहले, अपने RDBMS में जटिल स्थानिक दृश्य बनाएं। बस यह सुनिश्चित करें कि आपके पास दृश्य में एक पूर्ण UNIQUE NOT NULL स्तंभ है, जिसे बाद में ArcDDE के साथ पंजीकरण के लिए उपयोग किया जा सकता है।

मेरे प्रश्न इस के समान ही UNION ALL का एक समूह थे:

    SELECT OBJECTID, ID_UNIQUE_ID, AIRSPACE_ID, NM_INDICATIVE, 'XXX' AS "ELEMENT_TYPE",SHAPE FROM tb_XXX    
        UNION ALL

    SELECT OBJECTID, ID_UNIQUE_ID, AIRSPACE_ID, NM_INDICATIVE, 'YYY' AS "ELEMENT_TYPE",SHAPE FROM TB_YYY

इस स्कीमा में, मेरे सभी ऑब्जेक्ट के पास PK ID_UNIQUE_ID है, जो एक GUID है। मेरे ऑब्जेक्ट्स ने स्वयं को फीचर कक्षाओं में दोहराया, इसलिए, हमारे सरोगेट ऑब्जेक्ट के लिए एक अच्छा विकल्प नहीं है।

मैंने अपने सभी प्रश्नों को लपेटने और एक दृश्य बनाने के लिए ओरेकल के पंक्तिबद्ध वर्चुअल कॉलम का उपयोग किया (एक ऐसा दृश्य) जिसमें एक प्रभावी "ऑब्जेक्ट" था। जरा देखो तो:

SELECT 
    CAST(ROWNUM AS NUMBER(38,0)) AS "FID",
    OBJECTID,
    ID_UNIQUE_ID,
    AIRSPACE_ID,
    NM_INDICATIVE,
    ELEMENT_TYPE,
    SHAPE 
FROM 
(
    SELECT OBJECTID, ID_UNIQUE_ID, AIRSPACE_ID, NM_INDICATIVE, 'ZZZ' AS "ELEMENT_TYPE",SHAPE FROM TB_ZZZ

        UNION ALL

    SELECT OBJECTID, ID_UNIQUE_ID, AIRSPACE_ID, NM_INDICATIVE, 'XXX' AS "ELEMENT_TYPE",SHAPE FROM tb_XXX

        UNION ALL

    SELECT OBJECTID, ID_UNIQUE_ID, AIRSPACE_ID, NM_INDICATIVE, 'YYY' AS "ELEMENT_TYPE",SHAPE FROM TB_YYY
)

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

उसके बाद, मैंने कोशिश की है और अपने स्थानिक दृष्टिकोण को एक परत के रूप में दर्ज करने की कोशिश की है, लेकिन हमेशा असफल रहा। जब आप इसके शीर्ष पर एक दृश्य बनाते हैं, तो आर्कएसडी मानते हैं कि एफआईडी एक संख्या (38,10) है, जो एक अस्थायी बिंदु संख्या है, जो sdetable -o के अनुसार उपयोगिता कार्यक्रम का वर्णन करता है।

ओरेकल में, यह दृश्य के लिए परिभाषा थी:

  CREATE OR REPLACE FORCE VIEW "schema"."layer_name" ("FID", "OBJECTID", "ID_UNIQUE_ID", "AIRSPACE_ID", "NM_INDICATIVE", "SHAPE") AS 
  SELECT  CAST(fid AS NUMBER(38,0)) AS FID, objectid, id_unique_id, airspace_id, nm_indicative, shape FROM  schema.VW_AIRSPACE_POINTS_ORACLE;

के बाद मैं एक कलाकार के साथ fid कॉलम को बदल दिया है, सब कुछ ठीक काम किया। मैं परत के पंजीकरण के लिए आगे बढ़ा और यह ठीक हो गया।

संपादित करें

यह लेयर आर्ककॉस्टिक्स में एक पॉइंट लेयर के रूप में प्रदर्शित होती है और मैं हमेशा की तरह ArcMap में टेबल को देख और चुन सकता हूं (अंक भी हाइलाइट किए गए हैं), लेकिन मैं उन्हें प्रतीक नहीं बना सकता और उन्हें एक नियमित लेयर के रूप में देख सकता हूं। कोई तुच्छ?

किसी को भी किसी भी विचार क्यों ऐसा होता है? सब कुछ ठीक है, सिवाय इसके कि मैं आर्कपेज़ के अंदर स्थानिक वस्तुओं को नहीं देख सकता। कोई विचार?


1
आप उस दृश्य के अपने प्रदर्शन के साथ बहुत कुछ कर सकते हैं यदि आप अपने अनुक्रमित को अद्यतित रखते हैं, तो मैंने हर रात अनुक्रमित रखने के लिए लेनदेन की उच्च संख्या वाले सिस्टम पर चलने के लिए निर्धारित नौकरियां निर्धारित की हैं। फिर जब आप अपने जॉइन कर रहे होते हैं तो वे बेहतर तरीके से तैयार होते हैं।
15

यदि आप arcmatalog से arcmatalog में एक नए खाली मानचित्र में खींचते और छोड़ते हैं, तो क्या होता है?
किर्क कुएकेन्डल

ArcMap इसे TOC में जोड़ता है, लेकिन यह कुछ भी नहीं प्रदान करता है। अजीब बात यह है कि मैं पंक्तियों का चयन कर सकता हूं, और उस पंक्ति की ज्यामिति आकर्षित (चयनित) होगी। जब पंक्तियों का चयन नहीं किया जाता है तो कुछ भी नहीं खींचा जाता है। ArcMap के माध्यम से क्वेरी भी काम करता है।
जॉर्ज सिल्वा

1
दिलचस्प। यदि आप आर्कबोज का कोड लिखते हैं तो IGeoDataset.Extent के लिए फीचरलेयर की तरह क्या दिखता है? और फीचरक्लास के लिए?
किर्क कुएकेन्डल

मैं कोशिश करूँगा कि! चलो देखते हैं।
जॉर्ज सिल्वा

2

कृपया निम्नलिखित कमांड चलाने का प्रयास करें: sdelayer -o change -l [-S] [-k] [-i | | ] [-s] [-D] -E calc -u [-p]


टिप्पणी के लिए धन्यवाद। पहले से ही परत की हद तक पुनर्गणना करने की कोशिश की।
जॉर्ज सिल्वा

2

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

या तो स्रोत तालिकाओं में स्थानिक सूचकांक हैं? यदि नहीं, तो उन्हें Oracle में बनाने का प्रयास करें और -g के बिना दृश्य को फिर से पंजीकृत करें।

एक और संभावना यह है कि आप ज्यामिति को एक ही कॉलम में दो तालिकाओं से जोड़ रहे हैं, यह सुनिश्चित नहीं है कि यदि यह एक नहीं-नहीं है, तो इसे पहले नहीं आज़माया है।


मैं कोशिश करूंगा कि मैट। मैं भी एक और दृश्य में कई ज्यामितीय संयोजन कर रहा हूं और यह थोड़े महत्वपूर्ण है कि यह काम करता है। हम एक दृश्य पर linestrings का निर्माण कर रहे हैं और यह संघीकृत दृश्य उन परतों के लिए समर्थन का एकल बिंदु माना जाता था। मैं अन्य तरीकों की कोशिश कर रहा हूं, क्योंकि मैं ऐसा नहीं देख रहा हूं।
जॉर्ज सिल्वा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.