أكثر

كيفية تقييد عدد الرموز في اسم الميزة في CartoCSS؟


أقوم بعمل خريطة سياحية باستخدام CartoCSS في TileMill. هناك العديد من عمليات التكبير / التصغير وأود إظهار علامات الكائنات على التكبير / التصغير 15 وتسمياتها (الأسماء) عند التكبير / التصغير 16 أو 17. إذا كان عدد الرموز في الاسم كبيرًا جدًا (على سبيل المثال ، أكثر من 10) ، فأنا أرغب في تسميتها على 17 تكبير / تصغير ، وإذا كان هناك أقل من 10 رموز ، فأنا أرغب في تصنيفها على 16 تكبير / تصغير

هل يمكن لأي شخص أن يساعد في كيفية تعيين التقييد على عدد الرموز إما في CartoCSS أو SQL؟


لا يمكنك حساب طول السلسلة باستخدام CartoCSS مباشرةً ، ولكن يمكنك معالجة البيانات مسبقًا. إذا كنت تقرأ من قاعدة بيانات PostGIS ، فأضف حقلاً جديدًا لطول التسمية باستخدام ملفchar_length ()تعمل في Postgres (مستندات).

إذا كانت البيانات عبارة عن تنسيق آخر (مثل ملف الشكل) ، فسيتعين عليك إجراء الحساب في برنامج آخر (مثل qGIS).

بعد ذلك ، استخدم عامل تصفية CartoCSS (على سبيل المثال ، قم بتسمية الحقل المحسوبchar_count):

# label-layer [zoom = 16] [char_count <10]، # label-layer [zoom> = 17] {…}

الطباعة (رسم الخرائط)

الطباعةكجانب من جوانب تصميم رسم الخرائط ، هي حرفة تصميم ووضع نص على الخريطة لدعم رموز الخريطة ، وتمثل معًا الميزات الجغرافية وخصائصها. وغالبًا ما يطلق عليها أيضًا خريطة وضع العلامات أو حروف، لكن الطباعة يتماشى أكثر مع الاستخدام العام للطباعة. طوال تاريخ الخرائط حتى الوقت الحاضر ، كان وضع العلامات عليها يعتمد على التقنيات العامة وتقنيات الطباعة.


نموذج إشارة النطاق الأساسي المستخدم هو: $ x (t) = sum_^ N a_k p (t-kT) $ ، حيث $ a_k $ هي الرموز (هناك أنواع عديدة ، PSK ، QAM ، PAM على سبيل المثال) ، $ p (t) $ هو مرشح تشكيل النبض ، $ T $ هو فترة الرمز ، و $ N $ هو عدد الرموز. يحد مرشح تشكيل النبض من عرض النطاق الترددي $ x (t) $.

يُطلق على وجود عينات متعددة لكل رمز الإفراط في أخذ العينات. العينات لكل رمز ، $ textلا يتم اختيار $ ، عادةً بشكل صريح ، ولكن يتم تحديده من معدل رمز الإشارة ، $ F $ ، ومعدل العينة ، $ F_s $ ، على منصة معينة: $ text = فارك$. إفادة "العينات لكل رمز هي معدل أخذ العينات" غير صحيحة. بصريًا ، فإن الحصول على المزيد من العينات لكل رمز "يملأ" الرمز ويجعله يبدو أكثر سلاسة. هناك العديد من الأسباب ، إلى جانب مرشح تشكيل النبض ، للإفراط في أخذ العينات. على سبيل المثال ، تم تصميم بعض الخوارزميات في جهاز الاستقبال للعمل على الإشارة المستقبلة ذات العينات الزائدة ، بينما يتوقع البعض الآخر العمل على الرموز المستقبلة.


الطريقة الصحيحة لتقييد قيم إدخال النص (مثل الأرقام فقط)

هل من الممكن تنفيذ إدخال يسمح لكتابة الأرقام فقط بالداخل دون المعالجة اليدوية لـ event.target.value؟

في React ، من الممكن تحديد خاصية القيمة وبعد ذلك سيكون تغيير المدخلات مرتبطًا أساسًا بالقيمة (لا يمكن تعديلها بدون تغيير القيمة). انظر المثال. وهو يعمل بشكل جيد دون أي جهد.

في Angular 2 ، من الممكن تحديد [القيمة] ، لكنها ستحدد القيمة في البداية ، وبعد ذلك لا يتم منع الإدخال من التعديلات.

كنت ألعب مع ngModel و [القيمة] / (المدخلات) ، انظر المثال.

ولكن في كلا التطبيقين هناك مشكلة أساسية:

  1. عند كتابة 10 (قيمة الطراز 10 ، قيمة الإدخال هي 10) - صحيح
  2. عندما تكتب 10d بعد ذلك (قيمة الطراز 10 - لم يتم تعديلها ، تمت إزالة جميع الأرقام غير الرقمية ، تكون قيمة الإدخال 10d) - غير صحيحة ، لأن قيمة النموذج هي نفسها كما كانت من قبل
  3. عند كتابة 10d3 - (قيمة النموذج 103 ، قيمة الإدخال 103) - صحيح

كيفية القيام بهذا المكون البسيط (من النظرة الأولى) ، دون معالجة event.target.value يدويًا.

تحديث أنا لا أبحث عن عنصر إدخال HTML5 أصلي [رقم] هنا. إدخال الأرقام هنا هو على سبيل المثال فقط - قد يكون هناك المزيد من المهام عندما أحتاج إلى تقييد إدخال النص.

علاوة على ذلك ، الإدخال [رقم] هو 1) لا يقيدني من كتابة 10ddd و 2) (أقل أهمية) يحتوي على أسهم لا أحتاجها.

والمشكلة هنا هي يحاولوا المستخدم من كتابة شيء يتجاوز القيم المقيدة ، بدلاً من تسمح لإدخال أي شيء والتحقق من صحة بعد ذلك


بدلاً من محاولة تقييد الوصول إلى مجلد ، قد يكون من الأسهل إضافة ملفاتك كموارد مضمنة. بهذه الطريقة سيكونون جزءًا من الملف القابل للتنفيذ ولن يتمكن المستخدمون من حذفهم.

ضع ملف الأسئلة الثنائي في مجلد فرعي واجعله للقراءة فقط لأي مستخدم باستثناء المسؤولين ، فهذه ليست مشكلة برمجة ، إنها مشكلة إدارية.

بعد التعليقات ، لديك مجموعة مثيرة للاهتمام من القيود.

بالنسبة إلى الويب ، يعد هذا أمرًا مباشرًا نسبيًا ويمكنك تقييد وصول المستخدم إلى ملفات التطبيقات / البيانات بأي عدد من الطرق - وهذا (أو يجب أن يكون) متأصلًا في خوادم / تطبيقات الويب (من المؤكد أنها مخبأة في asp.net).

بالنسبة إلى تطبيق سطح المكتب ، إلا أنه أكثر إثارة للاهتمام ويعتمد على كيفية تثبيت / تشغيل التطبيق - إذا كان لدى المستخدم حقوق المسؤول على الجهاز ، فليس هناك الكثير مما يمكنك فعله لمنعه من التعامل مع الملفات. إذا لم يفعلوا ذلك ، فأنت بحاجة إلى مسؤول لنشر التطبيق ولديك مجموعة مختلفة من المشكلات المثيرة للاهتمام.

نظرًا لأنك تبحث عن حل للعمل على كلا النظامين الأساسيين ، فسأفعل كما يقترحAndy أن الحل الأفضل هو على الأرجح جعل الأسئلة موارد مضمنة - وهذا لن يمنع بالضرورة المستخدم من حذف الملف ولكنه سيجعل معالجة المحتوى بشكل أكثر صعوبة ، يمكنك إضافة بصمة (MD5 على سبيل المثال) والتشفير في المزيج أيضًا. إذا كنت تريد أن تكون قادرًا على الحصول على مجموعات أسئلة مختلفة ، فيمكنك فقط تضمينها في ملف dll. منفصل وهناك خيارات متنوعة لالتقاط ملفات dll. في وقت التشغيل.


8 إجابات 8

هناك بعض الأشياء التي يمكنك القيام بها للمساعدة في تقييد استخدام التطبيق على موقع مكتب معين وأجهزة محددة ، على الرغم من أن الإجابات الأخرى تشير إلى أنه لا يوجد أي منها حماية مطلقة

  • قم بإعداد جدار حماية أمام التطبيق لتقييد عناوين IP المسموح لها بالوصول إلى التطبيق على نطاق عناوين IP الخارجية للعملاء. سيكون لدى معظم الشركات عناوين IP ثابتة على أجهزة التوجيه التي تواجه الإنترنت ، وإذا قمت بتعيين التطبيق فقط ليتم الوصول إليه من خلال عناوين IP هذه ، فسيكون من الصعب على أي شخص غير مصرح له الوصول إليه ما لم يكن في مكتبهم. TBH هذا يبدو وكأنه النهج الذي سيعمل بشكل أفضل لمتطلبات عملائك
  • يمكنك أيضًا استخدام شهادات العميل على الأجهزة المصرح بها. كما يشيرadnan إلى أنه قد يكون من الممكن نقل هذه الأجهزة إلى جهاز آخر ولكن هذا قد يتطلب من المهاجم أن يكون إما موظفًا لديه وصول غير مصرح به إلى أحد أنظمته
  • ربما كعنصر تحكم ، يمكنك دمج هذا مع بصمات المتصفح (على سبيل المثال panopticlick). قم بإنشاء قائمة بالأجهزة وبصمات أصابعهم ، ثم إذا تم استخدام شهادة العميل على جهاز لا يتطابق مع بصمة الإصبع ، فيمكنك حظره.

كما أقول هذه ليست أمور مطلقة ولكن لا شيء في الأمن. إذا كان كل ما يبحث عنه عملاؤك هو منع الأشخاص من رؤية موقعهم خارج الشركة ، فسأختار نهج عامل تصفية عنوان IP المصدر.

عليك فقط استضافة تطبيق الويب على خادم على الإنترانت غير متصل بالإنترنت.

يجب أن يضمن إجراء التوجيه وجدار الحماية المناسب عدم وصول أي شخص غير متصل بالشبكة المحلية إلى تطبيق الويب.

إذا احتاج الأشخاص خارج الشبكة إلى الوصول إلى تطبيق الويب ، اطلب منهم إعداد اتصال VPN بشبكتك المحلية.


جرب هذا قد يعمل من أجلك

إذا كنت ترغب في إضافة مسافات يمكنك إعطاء مسافة بعد الرقم الأخير.

أو إذا كنت تفضل الطريقة السهلة:

تحقق من هذا الرابط الذي يظهر كيف يمكن تقييد الأحرف الخاصة من حقل EditText في Android؟

جرب هذا الرمز android: digits = "abcde. 012345789" أعتقد أن هذه هي أسهل طريقة للقيام بها. آمل أن يساعدك هذا.

إنه متأخر ولكنه قد يكون مفيدًا للآخرين. بدلاً من البرمجة ، يمكنك استخدام سمة xml. قد يكون الأمر كذلك في التخطيط الفردي لديك العديد من تحرير النص ، والذي تريد من خلاله تقييد الأحرف الخاصة فقط في EditText واحد. لذا فإن التحديد في xml سيساعدك. إليك الكود لتقييد الأحرف الخاصة من خلال السماح لهم فقط بإدخال الحروف الأبجدية والأرقام كما هو موضح أدناه

بالنسبة لأولئك الذين قد يواجهون مشاكل أثناء إضافة مساحة ، يرجى إضافة مساحة فارغة مع جميع الحروف الهجائية. يوجد أدناه مثال أيضًا يجب أن تعلم أن المستخدم لن يتمكن من إضافة سطر جديد في هذه الحالة.

تحتاج أولاً إلى إضافة DigitsKeyListener للسماح بالأحرف ثم قم بتعيين RawInputType إلى حقل تحرير النص


كيفية جعل مجموعات الميزات أكثر فعالية للتخصيص

تساعد مجموعة الميزات الجيدة برنامج Personalizer على تعلم كيفية التنبؤ بالإجراء الذي سيحقق أعلى مكافأة.

ضع في اعتبارك إرسال الميزات إلى Personalizer Rank API التي تتبع التوصيات التالية:

استخدم الأنواع الفئوية والسلسلة للمعالم التي ليست بحجم.

هناك ميزات كافية لدفع التخصيص. كلما زادت دقة استهداف المحتوى ، زادت الحاجة إلى ميزات أكثر.

هناك ما يكفي من الميزات المتنوعة كثافات. الميزة هي كثيف إذا تم تجميع العديد من العناصر في مجموعات قليلة. على سبيل المثال ، يمكن تصنيف آلاف مقاطع الفيديو على أنها & quotLong & quot (أكثر من 5 دقائق طويلة) و & quotShort & quot (بطول أقل من 5 دقائق). هذا ال كثيفة جدا خاصية. من ناحية أخرى ، يمكن أن يكون لنفس الآلاف من العناصر سمة تسمى & quotTitle & quot ، والتي لن يكون لها نفس القيمة تقريبًا من عنصر إلى آخر. هذا هو غير كثيف جدا أو متناثر خاصية.

يساعد وجود ميزات ذات كثافة عالية أداة التخصيص على استقراء التعلم من عنصر إلى آخر. ولكن إذا كانت هناك ميزات قليلة فقط وكانت كثيفة للغاية ، فسيحاول برنامج Personalizer استهداف المحتوى بدقة باستخدام عدد قليل من المجموعات للاختيار من بينها.

تحسين مجموعات الميزات

قم بتحليل سلوك المستخدم من خلال إجراء تقييم دون اتصال بالإنترنت. يتيح لك هذا الاطلاع على البيانات السابقة لمعرفة الميزات التي تساهم بشكل كبير في المكافآت الإيجابية مقابل تلك التي تساهم بشكل أقل. يمكنك معرفة الميزات التي تساعدك ، وسيكون الأمر متروكًا لك وللتطبيق الخاص بك للعثور على ميزات أفضل لإرسالها إلى Personalizer لتحسين النتائج بشكل أكبر.

هذه الأقسام التالية هي ممارسات شائعة لتحسين الميزات المرسلة إلى Personalizer.

اجعل الميزات أكثر كثافة

من الممكن تحسين مجموعات الميزات الخاصة بك عن طريق تحريرها لجعلها أكبر وأكثر كثافة أو أقل.

على سبيل المثال ، يعد الطابع الزمني حتى الثاني ميزة متفرقة جدًا. يمكن جعلها أكثر كثافة (فعالة) عن طريق تصنيف الأوقات إلى & quotmorning & quot ، & quotmidday & quot ، & quotaf بعد الظهر & quot ، وما إلى ذلك.

تستفيد معلومات الموقع أيضًا عادةً من إنشاء تصنيفات أوسع. على سبيل المثال ، إحداثي خطوط الطول والعرض مثل Lat: 47.67402 ° N ، Long: 122.12154 ° W دقيق للغاية ، ويجبر النموذج على تعلم خطوط الطول والعرض كأبعاد مميزة. عندما تحاول التخصيص بناءً على معلومات الموقع ، فإنه يساعد في تجميع معلومات الموقع في قطاعات أكبر. طريقة سهلة للقيام بذلك هي اختيار دقة التقريب المناسبة لأرقام Lat-Long ، والجمع بين خطوط الطول والعرض في & quotareas & quot عن طريق جعلها في سلسلة واحدة. على سبيل المثال ، طريقة جيدة لتمثيل 47.67402 ° N ، Long: 122.12154 ° W في المناطق التي يبلغ عرضها بضعة كيلومترات تقريبًا ستكون & quotlocation & quot: & quot34.3، 12.1 & quot.

قم بتوسيع مجموعات الميزات بالمعلومات المستنبطة

يمكنك أيضًا الحصول على المزيد من الميزات من خلال التفكير في السمات غير المكتشفة التي يمكن اشتقاقها من المعلومات التي لديك بالفعل. على سبيل المثال ، في تخصيص قائمة الأفلام الوهمية ، هل من الممكن أن تؤدي عطلة نهاية الأسبوع مقابل أيام الأسبوع إلى سلوك مختلف عن المستخدمين؟ يمكن تمديد الوقت للحصول على سمة & quotweekend & quot أو & quotweekday & quot. هل الأعياد الثقافية الوطنية تجذب الانتباه إلى أنواع معينة من الأفلام؟ على سبيل المثال ، تعد السمة & quotHalloween & quot مفيدة في الأماكن التي تكون ذات صلة. هل من الممكن أن يكون للطقس الممطر تأثير كبير على اختيار الفيلم لكثير من الناس؟ مع الوقت والمكان ، يمكن لخدمة الطقس أن توفر هذه المعلومات ويمكنك إضافتها كميزة إضافية.

قم بتوسيع مجموعات الميزات باستخدام الذكاء الاصطناعي والخدمات المعرفية

يمكن أن يكون الذكاء الاصطناعي والخدمات المعرفية الجاهزة للتشغيل إضافة قوية جدًا إلى أداة التخصيص.

من خلال المعالجة المسبقة للعناصر الخاصة بك باستخدام خدمات الذكاء الاصطناعي ، يمكنك تلقائيًا استخراج المعلومات التي من المحتمل أن تكون ذات صلة بالتخصيص.

  • يمكنك تشغيل ملف فيلم عبر Video Indexer لاستخراج عناصر المشهد والنص والمشاعر والعديد من السمات الأخرى. يمكن بعد ذلك جعل هذه السمات أكثر كثافة لتعكس الخصائص التي لا تحتويها البيانات الوصفية للعنصر الأصلي.
  • يمكن تشغيل الصور من خلال اكتشاف الأشياء ، والوجوه من خلال المشاعر ، وما إلى ذلك.
  • يمكن زيادة المعلومات في النص عن طريق استخراج الكيانات والمشاعر وتوسيع الكيانات باستخدام الرسم البياني المعرفي لـ Bing ، إلخ.

يمكنك استخدام العديد من خدمات Azure المعرفية الأخرى ، مثل


يمكن لـ java.util.Scanner بالفعل التحقق مما إذا كان الرمز المميز التالي من نمط / نوع معين باستخدام طرق hasNextXXX.

في ما يلي مثال على استخدام hasNext المنطقي (نمط سلسلة) للتحقق من أن الرمز المميز التالي يتكون من أحرف فقط ، باستخدام التعبير العادي [A-Za-z] +:

الرجاء إدخال الأحرف:
& amp # @ # $
كلا ، هذا ليس كل شيء!
123
كلا ، هذا ليس كل شيء!
جيمس بوند
شكرا لك! حصلت على جيمس

للتحقق من أن الرمز المميز التالي هو رقم يمكنك تحويله إلى int ، استخدم hasNextInt () ثم nextInt ().

أسئلة ذات صلة

ربما يكون من الأسهل القيام بذلك باستخدام تعبير عادي. إليك بعض التعليمات البرمجية النموذجية:

ربما يجب أن تكتب توابع "getAlphaInput" و "getNumericInput" والتي تؤدي الحلقة المناسبة من المطالبة / الجلب / الفحص حتى يكون الإدخال صحيحًا. أو ربما فقط getInput (Pattern) لتجنب كتابة كود مشابه لأنماط مختلفة.

يجب عليك أيضًا تحديد المتطلبات حول ما يمكن اعتباره "حرفًا" - ما ورد أعلاه ينطبق فقط على a-z و A-Z. إذا كنت بحاجة إلى التعامل مع اللكنات وما إلى ذلك أيضًا ، فيجب أن تنظر عن كثب في مستندات النمط والتكيف بشكل مناسب.

لاحظ أنه يمكنك استخدام regex للتحقق من صحة أشياء مثل طول السلسلة أيضًا. إنها مرنة للغاية.


قائمة المصطلحات

حلول

إجابات لأسئلة الفحص الذاتي

    1. براءة الاختراع هي حاجز تفرضه الحكومة للدخول.
    2. هذا ليس عائقا أمام الدخول.
    3. هذا ليس عائقا أمام الدخول.
    4. هذا عائق أمام الدخول ، لكنه لا تفرضه الحكومة.
    5. هذا عائق أمام الدخول ، لكنه لا يتم تطبيقه بشكل مباشر من قبل الحكومة.
    1. هذا هو العائق الذي تفرضه الحكومة على الدخول.
    2. هذا مثال على قانون حكومي ، ولكن ربما لا يمثل عائقًا كبيرًا أمام الدخول إذا تمكن معظم الأشخاص من اجتياز اختبار السلامة والحصول على التأمين.
    3. يتم فرض العلامات التجارية من قبل الحكومة ، وبالتالي فهي تشكل حاجزًا أمام الدخول.
    4. ربما لا يكون هذا عائقًا أمام الدخول ، نظرًا لوجود عدد من الطرق المختلفة للحصول على المياه النقية.
    5. هذا عائق أمام الدخول ، لكنه لا تفرضه الحكومة.


    شاهد الفيديو: Carto: CartoCSS (شهر اكتوبر 2021).