Daha çox

Xüsusiyyət məlumatları ilə xüsusi bir svg faylını necə yaratmaq olar


C ++/ QT4.8.5, qgis api c ++ 2.8.2 ilə işləyirəm

Bir xüsusiyyət üçün dinamik bir simge göstərməliyəm. məlumatların bir hissəsi vaxtaşırı dəyişir və dəyişikliyi göstərmək üçün məlumatları əldə edə biləcək bir svg lazımdır, çünki bir svg faylı toplamaq istəmirəm, çünki çox imkanlar var Bu nöqtədə yalnız iki parametrə ehtiyacım var. parametr daha çox olacaq Mənim xüsusiyyətimin iki xüsusiyyəti var sürət və rəng hər dəyişmə sürəti fərqli rəngdə oxun ölçüsünü təyin edir Rəng xüsusiyyətdə qurulur, bu bir alqoritmin nəticəsidir. Hal -hazırda, səkkizinci rəng və 3 növ sürət var (yavaş, orta, sürətli)

fayl yaratmağa necə davam edə biləcəyim barədə bir fikriniz varmı və bunu simvoluma tətbiq edin?


Dil məlumatları c ++ / QT4.8.5, qgis api c ++ 2.8.2 xüsusiyyətlərindən asılı olaraq xüsusi bir svg faylı yaratmaq istəyənlər üçün bir həlldir.

Bir svg faylı xml kodunu ehtiva edir Bu nümunədə xüsusi bir rəng qoyuruq və xüsusiyyətin 'vitesse' parametrinə əsaslanaraq istifadəni dəyişirik Bu nümunə kod 3 fərqli ox çəkir: kiçik orta və böyük 30x30 piksel matris

burada funksiya:

void createTrackIco (QgsFeature pFeature, int pTrackId, bool pUpdateIco) {QString lColorIco; QString lUseIco; ikiqat lVitesse; if (pUpdateIco) {// lColorIco = pFeature.attribute ("COLOR") xüsusiyyət məlumatlarını əldə edin. toString (); lVitesse = pFeature.attribute ("VITESSE"). toDouble (); əgər (lVitesse <10) lUseIco = "lent"; else if (lVitesse <20) lUseIco = "moyen"; başqa lUseIco = "rapide"; qDebug () << "Yeniləmə Icone Type =" << lUseIco << "couleur =" << lColorIco << "vitesse =" << lVitesse; } else {// yaradılması növü icone par defaut lColorIco = "black"; lUseIco = "borc verildi"; } QString fileXmlName = "... /data/Icones/iconeS52/track_"+QString::number(pTrackId)+".svg"; QFile fileXml (fileXmlName); // faylı sınayın. if (! fileXml.open (QFile :: WriteOnly | QFile :: Text)) qDebug () << "error"; QXmlStreamWriter yazarı (& fileXml); yazar.setAutoFormatting (doğru); yazar.setCodec ("iso-8859-1"); // Xml kodlaşdırma normasını daxil edin: editor.writeStartDocument (); // faylın kökü XML yazar.writeStartElement ("svg"); yazıçı.writeAttribute ("eni", "30"); yazıçı.writeAttribute ("boy", "30"); yazar.writeAttribute ("xmlns", "http://www.w3.org/2000/svg"); // element əlavə et yazar.writeStartElement ("defs"); // kiçik yazıçı.writeStartElement ("g"); yazıçı.writeAttribute ("id", "lent"); yazıçı.writeStartElement ("xətt"); yazıçı.writeAttribute ("x1", "0"); yazıçı.writeAttribute ("y1", "0"); yazıçı.writeAttribute ("x2", "15"); yazıçı.writeAttribute ("y2", "15"); yazıçı.writeAttribute ("stil", "vuruş:"+lColorIco+"; kontur eni: 2"); // sətir sonu yazarı.writeEndElement (); yazıçı.writeStartElement ("xətt"); yazıçı.writeAttribute ("x1", "0"); yazıçı.writeAttribute ("y1", "30"); yazıçı.writeAttribute ("x2", "15"); yazıçı.writeAttribute ("y2", "15"); yazıçı.writeAttribute ("stil", "vuruş:"+lColorIco+"; kontur eni: 2"); // sətir sonu yazarı.writeEndElement (); yazıçı.writeStartElement ("xətt"); yazıçı.writeAttribute ("x1", "15"); yazıçı.writeAttribute ("y1", "15"); yazıçı.writeAttribute ("x2", "21"); yazıçı.writeAttribute ("y2", "15"); yazıçı.writeAttribute ("stil", "vuruş:"+lColorIco+"; kontur eni: 2"); // sətir sonu yazarı.writeEndElement (); yazıçı.writeStartElement ("xətt"); yazıçı.writeAttribute ("x1", "15"); yazıçı.writeAttribute ("y1", "10"); yazıçı.writeAttribute ("x2", "20"); yazıçı.writeAttribute ("y2", "15"); yazıçı.writeAttribute ("stil", "vuruş:"+lColorIco+"; kontur eni: 2"); // sətir sonu yazarı.writeEndElement (); yazıçı.writeStartElement ("xətt"); yazıçı.writeAttribute ("x1", "15"); yazıçı.writeAttribute ("y1", "20"); yazıçı.writeAttribute ("x2", "20"); yazıçı.writeAttribute ("y2", "15"); yazıçı.writeAttribute ("stil", "vuruş:"+lColorIco+"; kontur eni: 2"); // sətir sonu yazarı.writeEndElement (); // g etiketinin sonu yazar.writeEndElement (); // orta yazar.writeStartElement ("g"); yazıçı.writeAttribute ("id", "moyen"); yazıçı.writeStartElement ("xətt"); yazıçı.writeAttribute ("x1", "0"); yazıçı.writeAttribute ("y1", "0"); yazıçı.writeAttribute ("x2", "15"); yazıçı.writeAttribute ("y2", "15"); yazıçı.writeAttribute ("stil", "vuruş:"+lColorIco+"; kontur eni: 2"); yazıçı.writeEndElement (); yazıçı.writeStartElement ("xətt"); yazıçı.writeAttribute ("x1", "0"); yazıçı.writeAttribute ("y1", "30"); yazıçı.writeAttribute ("x2", "15"); yazıçı.writeAttribute ("y2", "15"); yazıçı.writeAttribute ("stil", "vuruş:"+lColorIco+"; kontur eni: 2"); yazıçı.writeEndElement (); yazıçı.writeStartElement ("xətt"); yazıçı.writeAttribute ("x1", "15"); yazıçı.writeAttribute ("y1", "15"); yazıçı.writeAttribute ("x2", "25"); yazıçı.writeAttribute ("y2", "15"); yazıçı.writeAttribute ("stil", "vuruş:"+lColorIco+"; kontur eni: 2"); yazıçı.writeEndElement (); yazıçı.writeStartElement ("xətt"); yazıçı.writeAttribute ("x1", "15"); yazıçı.writeAttribute ("y1", "10"); yazıçı.writeAttribute ("x2", "25"); yazıçı.writeAttribute ("y2", "15"); yazıçı.writeAttribute ("stil", "vuruş:"+lColorIco+"; kontur eni: 2"); // sətir sonu yazarı.writeEndElement (); yazıçı.writeStartElement ("xətt"); yazıçı.writeAttribute ("x1", "15"); yazıçı.writeAttribute ("y1", "20"); yazıçı.writeAttribute ("x2", "25"); yazıçı.writeAttribute ("y2", "15"); yazıçı.writeAttribute ("stil", "vuruş:"+lColorIco+"; kontur eni: 2"); // sətir sonu yazarı.writeEndElement (); // g etiketinin sonu yazar.writeEndElement (); // böyük yazıçı.writeStartElement ("g"); yazıçı.writeAttribute ("id", "rapide"); yazıçı.writeStartElement ("xətt"); yazıçı.writeAttribute ("x1", "0"); yazıçı.writeAttribute ("y1", "0"); yazıçı.writeAttribute ("x2", "15"); yazıçı.writeAttribute ("y2", "15"); yazıçı.writeAttribute ("stil", "vuruş:"+lColorIco+"; kontur eni: 2"); // sətir sonu yazarı.writeEndElement (); yazıçı.writeStartElement ("xətt"); yazıçı.writeAttribute ("x1", "0"); yazıçı.writeAttribute ("y1", "30"); yazıçı.writeAttribute ("x2", "15"); yazıçı.writeAttribute ("y2", "15"); yazıçı.writeAttribute ("stil", "vuruş:"+lColorIco+"; kontur eni: 2"); // sətir sonu yazarı.writeEndElement (); yazıçı.writeStartElement ("xətt"); yazıçı.writeAttribute ("x1", "15"); yazıçı.writeAttribute ("y1", "15"); yazıçı.writeAttribute ("x2", "30"); yazıçı.writeAttribute ("y2", "15"); yazıçı.writeAttribute ("stil", "vuruş:"+lColorIco+"; kontur eni: 2"); // sətir sonu yazarı.writeEndElement (); yazıçı.writeStartElement ("xətt"); yazıçı.writeAttribute ("x1", "15"); yazıçı.writeAttribute ("y1", "10"); yazıçı.writeAttribute ("x2", "30"); yazıçı.writeAttribute ("y2", "15"); yazıçı.writeAttribute ("stil", "vuruş:"+lColorIco+"; kontur eni: 2"); // sətir sonu yazarı.writeEndElement (); yazıçı.writeStartElement ("xətt"); yazıçı.writeAttribute ("x1", "15"); yazıçı.writeAttribute ("y1", "20"); yazıçı.writeAttribute ("x2", "30"); yazıçı.writeAttribute ("y2", "15"); yazıçı.writeAttribute ("stil", "vuruş:"+lColorIco+"; kontur eni: 2"); // sətir sonu yazarı.writeEndElement (); // g etiketinin sonu yazar.writeEndElement (); // defs etiketinin sonu yazar.writeEndElement (); // yazmağa başla yazar.writeStartElement ("istifadə"); yazar.writeAttribute ("xlink: href", "#"+lUseIco); yazıçı.writeAttribute ("x", "0"); yazıçı.writeAttribute ("y", "0"); // svg etiketinin sonu yazar.writeEndElement (); // məlumatları XML faylına yazmaq editor.writeEndDocument (); // faylı bağlayın və kök elementini bağlayın fileXml.close (); }

bu nümunəni araşdıra, təkmilləşdirə və ya sadəcə kömək üçün zövq ala bilərsiniz.


Videoya baxın: How To Convert Your Svg Logo in JPG PNG and PDF. SENSOR #shorts (Sentyabr 2021).