Veel

Kuidas piirata funktsioonide nimes olevate sümbolite arvu CartoCSS-is?

Kuidas piirata funktsioonide nimes olevate sümbolite arvu CartoCSS-is?


Ma teen TileMillis turismikaardi koos CartoCSS-iga. Suumi on mitu ja sooviksin näidata objektide markereid 15 suumil ja nende silte (nimesid) 16 või 17 suumil. Kui sümbolite arv nimes on liiga suur (näiteks üle 10), siis tahan need märkida 17 suumile, kui sümboleid on alla 10, siis 16 suumile.

Kas keegi saaks aidata, kuidas seada sümboolide arvule piirang CartoCSS-is või sql-s?


Otse CartoCSS abil ei saa stringi pikkust arvutada, kuid saate andmeid eeltöödelda. Kui loete PostGIS-i andmebaasist, lisage sildi pikkusele uus väli, kasutadeschar_length ()funktsioon Postgresis (docs).

Kui teie andmed on muus vormingus (nt shapefile), peate arvutused tegema teises programmis (nt qGIS).

Seejärel kasutage CartoCSS-filtrit (näiteks nimetage arvutatud välichar_count):

# silt-kiht [zoom = 16] [char_count <10], # silt-kiht [zoom> = 17] {…}

Tüpograafia (kartograafia)

Tüpograafiaon kartograafilise disaini aspektina käsitöö teksti kujundamisest ja kaardile paigutamisest, toetades kaardisümboleid koos geograafiliste tunnuste ja nende omadustega. Sageli nimetatakse seda ka kaardiks märgistamine või kirjad, aga tüpograafia on rohkem kooskõlas tüpograafia üldkasutusega. Kaartide ajalugu on kuni tänapäevani sõltunud tüpograafia üldistest tehnikatest ja tehnoloogiatest.


Kasutatav põhiriba signaali mudel on: $ x (t) = summa_^ N a_k p (t-kT) $, kus $ a_k $ on sümbolid (neid on palju, näiteks PSK, QAM, PAM), $ p (t) $ on impulsi kujundav filter, $ T $ on sümboliperiood ja $ N $ on sümbolite arv. Impulsi kujundav filter piirab ribalaiust $ x (t) $.

Mitme valimi olemasolu sümbolil nimetatakse ülevalimiks. Näidised sümboli kohta, $ text$, ei ole tavaliselt selgesõnaliselt valitud, vaid see määratakse konkreetse platvormi signaali sümbolikiiruse, $ F $ ja valimiskiiruse $ F_s $ alusel: $ text = frac$. Teie väide, et "proovid sümbolil on valimisagedus" ei ole õige. Visuaalselt "täidab" sümbol rohkem sümbolit sümbolite kohta ja muudab selle siledamaks. Lisaks impulsside kujundamise filtrile on palju proove, et üle proovida. Näiteks on mõned vastuvõtja algoritmid kavandatud ülevalimiga vastuvõetud signaali kasutamiseks, teised aga eeldavad, et töötavad vastuvõetud sümbolitega.


Õige viis tekstisisestuse väärtuste (nt ainult numbrite) piiramiseks

Kas on võimalik rakendada sisendit, mis võimaldab sisestada ainult numbreid ilma sündmuse.target.value käsitsi käitlemiseta?

Rakenduses React on võimalik määratleda väärtuse omadus ja hiljem seotakse sisendi muutus põhimõtteliselt väärtusega (ilma väärtuse muutuseta pole seda võimalik muuta). Vaata näidet. Ja see töötab suurepäraselt ilma igasuguste pingutusteta.

Nurgas 2 on võimalik määratleda [väärtus], kuid see määrab lihtsalt väärtuse esialgu ja pärast seda ei takistata sisestamist.

Mängisin ringi ngModeli ja [väärtus] / (sisend) abil, vt näidet.

Kuid mõlemas rakenduses on oluline probleem:

  1. kui tippite 10 (mudeli väärtus on 10, sisendväärtus on 10) - õige
  2. kui tippite pärast 10d (mudeli väärtus on 10 - pole muudetud, on kõik arvud eemaldatud, sisendväärtus on 10d) - vale, kuna mudeli väärtus on sama mis varem
  3. kui tippite 10d3 - (mudeli väärtus on 103, sisendväärtus on 103) - õige

Kuidas seda lihtsat (esmapilgul) komponenti teha ilma event.target.value käsitsi käsitsemata

UUENDAMINE Ma ei otsi siin HTML5-sisend [number] natiivelementi. Numbrite sisestamine on siin vaid näide - kui peaksin sisestusteksti piirama, võib olla palju rohkem ülesandeid.

Veelgi enam, sisend [number] on 1) ei takista mind kirjutamast 10ddd ja 2) (vähem oluline) sisaldab nooli, mida ma ei vaja.

Ja probleem on siin ära hoida kasutajal tippimise asemel midagi, mis ületab piiratud väärtusi lubama midagi sisestada ja kinnitada pärast seda


Kaustale juurdepääsu piiramise asemel võib olla lihtsam lisada faile manustatud ressurssidena. Nii saavad nad teie käivitatava faili osaks ja kasutajad ei saa neid kustutada.

Pange küsimuste binaarfail alamkausta ja laske sellel lugeda ainult kõiki kasutajaid, välja arvatud administraatorid, see pole programmeerimisprobleem, vaid administreerimisprobleem.

Pärast kommentaare on teil huvitav piirangute kogum.

Veebi jaoks on see suhteliselt lihtne ja võite piirata kasutajate juurdepääsu rakenduste / andmefailidele mitmel viisil - see on (või peakski olema) omane veebiserveritele / rakendustele (see on kindlasti asp.net-i küpsetatud).

Töölauarakenduse puhul on see aga hoopis huvitavam ja sõltub rakenduse installimise / käitamise viisist - kui kasutajal on masinas administraatori õigused, saate failidega manipuleerimise peatamiseks teha väga vähe. Kui neid pole, vajate rakenduse juurutamiseks administraatorit ja teil on teistsugune komplekt huvitavaid probleeme.

Kuna otsite mõlemal platvormil töötavat lahendust, siis teeksin nii, nagu @Andy soovitab, seega on parim lahendus tõenäoliselt küsimuste manustatud ressursside loomine - see ei peata tingimata kasutaja faili kustutamast, kuid muudab sisuga palju raskemini manipuleerides saate ka segusse lisada sõrmejälje (näiteks MD5) ja krüptimise. Kui soovite, et teil oleks erinevaid küsimuste komplekte, saate need lihtsalt manustada eraldi .dll-faili ja .dll-de käitamise ajal on mitmeid võimalusi.


8 Vastused 8

Rakenduse kasutamise piiramiseks konkreetse kontorikoha ja konkreetsete seadmetega saate teha paar asja, ehkki nagu teised vastused osutavad, pole ükski neist absoluutne kaitse

  • Seadistage rakenduse ette tulemüür, et piirata rakendusele juurdepääsemiseks lubatud IP-aadresse klientide välise IP-aadresside vahemikuga. Enamiku ettevõtete Interneti-ruuteritel on staatilised IP-aadressid ja kui määrate rakenduse juurdepääsetavaks ainult nende IP-aadresside kaudu, oleks volitamata isikul raskem sellele juurde pääseda, kui ta pole oma kontoris. TBH kõlab nagu lähenemine, mis sobib teie klientide nõudmistele kõige paremini
  • Samuti võite volitatud seadmetes kasutada kliendisertifikaate. Nagu @adnan juhib tähelepanu, võib olla võimalik neid teisele masinale teisaldada, kuid see eeldaks, et ründajal oleks kas töötaja, kellel peaks olema volitamata juurdepääs ühele nende süsteemidest
  • võib-olla detektiivjuhtimisena võiksite selle kombineerida brauseri sõrmejälgede võtmisega (nt panopticlick). Looge seadmete ja nende sõrmejälgede loend. Kui kliendisertifikaati kasutatakse seadmes, mis ei vasta sõrmejäljele, saate selle blokeerida.

Nagu ma ütlen, pole need absoluutsed, kuid siis pole midagi turvalisuses. Kui kõik, mida teie klient otsib, on takistada inimestel väljaspool oma ettevõtte saiti nägemist, valiksin lähte-IP-aadressi filtri lähenemise.

Peate lihtsalt hostima veebirakenduse sisevõrgus asuvas serveris, mis pole Internetiga ühendatud.

Õige marsruutimise ja tulemüüri mõõtmine peaks tagama, et kellelgi, kes pole kohaliku võrguga ühendatud, oleks juurdepääsu veebirakendusele.

Kui väljaspool võrku olevad inimesed vajavad juurdepääsu veebirakendusele, laske neil oma kohaliku võrguga VPN-ühendus seadistada.


Proovige, see võib teile sobida

Tühikute lisamiseks võite ruumi anda pärast viimast numbrit.

Või kui eelistate lihtsat viisi:

kontrollige seda linki, mis näitab Kuidas piirata Android EditText välja erimärke?

Proovige seda koodi android: digits = "abcde. 012345789" ma arvan, et see on kõige lihtsam viis. Loodan, et see aitab teil.

See on hilja, kuid võib olla kasulik teistele. Programmeerimise asemel võite kasutada atribuuti xml. Võib juhtuda, et ühe paigutuse korral on teil palju editText, millest soovite erimärke piirata ainult ühes EditTextis. Nii et xml-is määratlemine aitab teil sellest välja tulla. Siin on kood erimärkide piiramiseks, lubades neil sisestada ainult tähestikke ja numbreid nagu allpool

Neile, kellel võib ruumi lisamise ajal probleeme olla, lisage kõigi tähestikega tühi koht. Allpool on näide. Samuti peaksite teadma, et kasutaja ei saa sel juhul uut rida lisada.

Esmalt tuleb märkide lubamiseks lisada DigitsKeyListener ja seejärel seada väljale edittext setRawInputType


Kuidas muuta funktsioonide komplektid personaliseerija jaoks tõhusamaks?

Hea funktsioonikomplekt aitab Personalizeril õppida ennustama tegevust, mis toob suurimat tasu.

Kaaluge funktsioonide Personalizer Rank API saatmist, mis järgivad neid soovitusi:

Funktsioonide jaoks, mis pole suurusjärk, kasutage kategoorilisi ja stringitüüpe.

Isikupärastamise juhtimiseks on piisavalt funktsioone. Mida täpsemalt peab sisu olema suunatud, seda rohkem funktsioone on vaja.

Seal on piisavalt erinevaid funktsioone tihedused. Funktsioon on tihe kui paljud üksused on rühmitatud paari ämbrisse. Näiteks saab tuhandeid videoid liigitada kategooriatesse & quot; Pikk & quot; (üle 5 min pikkused) ja & quot; Lühikesed & quot; (alla 5 min pikkused). See on väga tihe tunnusjoon. Teisest küljest võib samadel tuhandetel üksustel olla atribuut nimega & quotTitle & quot, millel ei ole peaaegu kunagi sama väärtust ühelt üksuselt teisele. See on väga mittetihe või hõre tunnusjoon.

Suure tihedusega funktsioonide olemasolu aitab personaliseerijal ekstrapoleerida õppimist ühelt üksuselt teisele. Kuid kui funktsioone on ainult vähe ja need on liiga tihedad, püüab isikupärastaja sisu täpselt sihtida, valides vaid mõne ämbriga.

Parandage funktsioonide komplekte

Analüüsige kasutaja käitumist võrguühenduseta hindamise abil. See võimaldab teil vaadata varasemaid andmeid, et näha, millised funktsioonid aitavad positiivset kasu võrreldes vähem omadega. Näete, millised funktsioonid aitavad, ning teie ja teie rakenduse ülesanne on leida paremaid funktsioone, mida Personalizerile saata, et tulemusi veelgi parandada.

Need järgmised jaotised on personaliseerijale saadetud funktsioonide täiustamise tavalised tavad.

Muutke omadused tihedamaks

Funktsioonikomplekte on võimalik parandada, muutes neid suuremaks ja enam-vähem tihedaks.

Näiteks ajatempel teisele on väga hõre funktsioon. Seda saaks muuta tihedamaks (efektiivsemaks), liigitades ajad & quothommik & quot, & quotmidday & quot, & quotafternoon & quot jne.

Asukohateabele on tavaliselt kasulik ka laiema klassifikatsiooni loomine. Näiteks on laius- ja pikkuskraadide koordinaadid, näiteks Lat: 47,67402 ° N, Long: 122,12154 ° W, liiga täpsed ja sunnib mudelit õppima laius- ja pikkuskraade eraldi mõõtmetena. Kui proovite asukohateabe põhjal isikupärastada, aitab see grupeerida asukohateavet suuremates sektorites. Lihtne viis selleks on valida Lat-Longi numbritele sobiv ümardustäpsus ning ühendada laius- ja pikkuskraad & quotare'ideks, muutes need üheks stringiks. Näiteks hea viis kujutada 47,67402 ° N, pikk: 122,12154 ° W umbes mõne kilomeetri laiustes piirkondades oleks "asukoht": "34,3, 12,1".

Laienda funktsioonide komplekte ekstrapoleeritud teabega

Samuti võite saada rohkem funktsioone, mõeldes uurimata atribuutidele, mida saab tuletada juba olemasolevast teabest. Näiteks fiktiivse filmiloendi isikupärastamisel on võimalik, et nädalavahetus vs nädalapäev tekitab kasutajatest erinevat käitumist? Aega saab laiendada atribuudile & quot; nädalalõpp & quot või & quot; nädalapäev & quot; Kas riiklikud kultuuripühad tõmbavad tähelepanu teatud filmitüüpidele? Näiteks atribuut & quotHalloween & quot; on kasulik kohtades, kus see on asjakohane. Kas on võimalik, et vihmane ilm mõjutab paljude inimeste jaoks filmi valikut märkimisväärselt? Aja ja koha järgi võiks seda teavet pakkuda ilmateenistus ja saate selle lisafunktsioonina lisada.

Laiendage funktsioonikomplekte tehisintellekti ja kognitiivsete teenustega

Tehisintellekt ja käitamiseks valmis kognitiivsed teenused võivad olla isikupärastajale väga võimas lisand.

Tehes tehisintellektiteenuste abil oma eeltöötluse, saate automaatselt hankida teavet, mis on isikupärastamiseks tõenäoliselt asjakohane.

  • Stseenielementide, teksti, meeleolu ja paljude muude atribuutide väljavõtmiseks saate videofaili käivitada Video Indexeri kaudu. Seejärel saab neid atribuute muuta tihedamaks, et kajastada omadusi, mida algsetel üksuse metaandmetel polnud.
  • Pilte saab käitada läbi objektide tuvastamise, nägusid läbi sentimentide jne.
  • Tekstis olevat teavet saab täiendada, eraldades üksusi, sentimente, laiendades üksusi Bingi teadmiste graafikuga jne.

Võite kasutada mitut muud Azure'i kognitiivset teenust, näiteks


java.util.Scanner saab juba meetoditega hasNextXXX kontrollida, kas järgmine märgis on antud mustri / tüübiga.

Siin on näide tõeväärtuse hasNext (stringi muster) kasutamisest selle kinnitamiseks, et järgmine märk koosneb ainult tähtedest, kasutades regulaaravaldist [A-Za-z] +:

Sisestage tähed:
& amp # @ # $
Ei, see pole see!
123
Ei, see pole see!
james bond
Aitäh! Sain jamesid

Selle kinnitamiseks, et järgmine luba on number, mille saate teisendada int-ks, kasutage hasNextInt () ja seejärel nextInt ().

Seotud küsimused

Tõenäoliselt on seda kõige lihtsam teha tavaväljendiga. Siin on mõned näidiskoodid:

Tõenäoliselt peaksite kirjutama meetodid "getAlphaInput" ja "getNumericInput", mis täidavad vastavat käsku / tõmbamist / kontrollimist, kuni sisend on õige. Või võib-olla lihtsalt getInput (muster), et vältida erinevate mustrite jaoks sarnase koodi kirjutamist.

Samuti peaksite välja töötama nõuded selle kohta, mida loetakse täheks - ülaltoodud teevad ainult a-z ja A-Z. kui teil on vaja hakkama saada ka aktsentidega jms, peaksite mustri dokumente lähemalt uurima ja kohanema.

Pange tähele, et regexi abil saate kinnitada ka selliseid asju nagu stringi pikkus. Nad on väga paindlikud.


Sõnastik

Lahendused

Vastused enesekontrolli küsimustele

    1. Patent on valitsuse poolt sunnitud sisenemistakistus.
    2. See ei ole sisenemise takistus.
    3. See ei ole sisenemise takistus.
    4. See on sisenemise takistus, kuid seda ei täideta valitsuse poolt.
    5. See on küll sisenemise takistus, kuid seda ei täideta otseselt valitsuse poolt.
    1. See on valitsuse poolt kehtestatud sisenemistakistus.
    2. See on näide valitsuse seadusest, kuid võib-olla ei ole see palju sisenemise takistuseks, kui enamik inimesi saab ohutuskatse ja kindlustuse.
    3. Kaubamärgid on jõustatud valitsuse poolt ja on seega sisenemise takistuseks.
    4. See ei ole tõenäoliselt sisenemise takistus, sest puhta vee saamiseks on mitmeid erinevaid viise.
    5. See on sisenemise takistus, kuid seda ei täideta valitsuse poolt.

    Vaata videot: Using Carto as a field calculator