Weltkarte erstellen (dauert ewig)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #16
    Das geht sogar mit einem reinen Image-Formularelement (oder wie das hieß): Da werden x- und y-Koordinaten übergeben.

    Kommentar


    • #17
      sry ich kann dir da grad nich ganz folgen.
      nen beispiel wäre schon oder nach was man googlen soll
      Mess with the Besth, die like the rest!

      Kommentar


      • #18
        Und mit Javascript ist das auch recht einfach machbar (sry, wenns Tippfehler hat):
        Code:
        function elOffset(e){
         var t = 0, l = 0;
         do{
          t += e.offsetTop  || 0;
          l += e.offsetLeft || 0;
          e = e.offsetParent;
          if(e && e.tagName.toUpperCase() == "BODY"){break;}
         }while(e);
         return [l, t];
        }
        
        function getRelativePosition(e){
         e = e || window.event;
         var x, y, t = e.target || e.srcElement, o = elOffset(t);
         if(window.attachEvent && navigator.userAgent.indexOf("Opera") == -1){
          x = e.clientX + (document.body.scrollLeft || document.documentElement.scrollLeft);
          y = e.clientY + (document.body.scrollTop || document.documentElement.scrollTop);
         }else{
          x = e.pageX
          y = e.pageY
         }
         x -= o[0];
         y -= o[1];
         alert("x: " + x + "\ny: " + y)
        }
        
        document.getElementById("myImage").onclick = getRelativePosition;

        Kommentar


        • #19
          wow klappt 1a
          leider kenn ich mich mit javascript nich so gut aus.
          aber funzt denk ich so weit. vielen dank.
          Mess with the Besth, die like the rest!

          Kommentar


          • #20
            sry ich kann dir da grad nich ganz folgen.
            Wenn dir das noch nicht klar ist:
            Erstelle einmal ein Formular mit einem input type="image". Wenn du dann das Formular per GET überträgst lasse dir $_GET einmal mit prin_r ausgeben, wenn per POST mach ein print_r($_POST); (Das Formular muss mit einem Klick auf den Bildbutton abgeschickt werden).
            Dann wirst du sehen, was Pekka vorschlug. Sein Vorschlag ist je nach Situation besser als mit Javascript.

            Kommentar


            • #22
              un ich kann mir jezt mit imagefilledrectangle dort 10000 rechtecke in das große bild malen lassen? oder gibs da ne begrenzung?
              oder meintet ihr ne andere funktion um das große bild zu malen

              ps: weil irgendwie stell ich grad fest das der mir nur (ka ahnung wieviel genau aber so ca 200 rechtecke macht dann is schluss)
              Zuletzt geändert von Besth; 07.06.2009, 23:22.
              Mess with the Besth, die like the rest!

              Kommentar


              • #23
                Die maximale Ausführungszeit für das Script kann natürlich problematisch werden ...
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #24
                  Ich habe schon eine Karte gebaut und diese einfach nur als Bild angezeigt.
                  Mittels css die Links rübergesetzt und fertig.
                  Wo ist das Problem?


                  Und generell sollte man darauf achten, das du nicht zu viele Bilder lädst.
                  Pro Seite nicht mehr als 20, was man normal auch locker schafft.
                  Gut geraten ist halb gewußt.

                  Kommentar


                  • #25
                    Das hilft mir jetzt aber nicht weiter.
                    An den 30sek wirds nicht liegen. Weil 1.bekommt man ja ne meldung und 2. Wird meine schleife ja diese 10000ma durchlaufen. Nur er malt nur die ersten 200 rechtecke und dann nix mehr aber die schleife läuft weiter.

                    Ich hab jetzt nur ein bild.
                    Und wie hast du das gemacht martinm79?
                    Hast du für jedes feld ein rechteck gemalt oder bin ich da am falschen ansatz?
                    Mess with the Besth, die like the rest!

                    Kommentar


                    • #26
                      Also ich habe gerade testweise ein 1600x800 Bild völlständig übermalt, in dem ich 1.280.000 Mal imagefilledrectangle() aufgerufen habe. Funktioniert 1a und dauert keine ganze Sekunde.
                      Bist du dir sicher, dass du die Pixel wirklich ins Bild setzt? Wenn man Koordinaten außerhalb des Bildes angibt, dauert es deutlich länger oder schmiert ab.

                      Kommentar


                      • #27
                        hm eigentlich schon.
                        ich guck nochma drüber.

                        gibt es ansonsten vielleicht ne php.ini einstellung die so etwas begrenzt oder dergleichen?
                        Mess with the Besth, die like the rest!

                        Kommentar


                        • #28
                          hm habs grad nochma von vorn getestet.
                          irgendwie liegts an der farbe. kann mir den fehler nur noch nicht erklären. ich test ma noch weiter.
                          aber danke für deine hilfe schonma das du es bei dir ausprobiert hast.

                          ps: ja ich hab in meiner schleife die farbbestimmung mittels imagecolorallocate gemacht. das geht wohl so nicht weil das nur 254 mal geht.
                          danke für eure hilfe ich habs jetzt ^^
                          hab einfach die farbdefinition außerhalb der schleife - weil ich hab keine 254 verschiedenen farben - da gehts *puhh*
                          Zuletzt geändert von Besth; 08.06.2009, 10:08.
                          Mess with the Besth, die like the rest!

                          Kommentar


                          • #29
                            Du erzeugst jede Farbe hoffentlich nur einmal und nicht etwa für jedes Pixel erneut?!
                            Hier mein Code zum Vergleich.
                            PHP-Code:
                            $width 1600;
                            $height 800;
                            $scale 1;

                            // http://flatplanet.sourceforge.net/maps/images/earth-living.jpg
                            $im imagecreatefromjpeg('images/earth-living.jpg');

                            $green imagecolorallocate($im0x660xcc0x66);
                            $blue  imagecolorallocate($im0x330x990xff);

                            for (
                            $y 0$y $height$y++) {
                                for (
                            $x 0$x $width$x++) {
                                    
                            imagefilledrectangle($im
                                        
                            $x*$scale$y*$scale
                                        
                            $x*$scale+$scale$y*$scale+$scale
                                        (
                            $x+$y)%$green $blue);
                                }
                            }

                            header('Content-type: image/jpeg');
                            imagejpeg($im); 

                            Kommentar


                            • #30
                              doch ich hatte es vorher für jeden pixel neu erstellt.
                              das war der fehler.
                              und ich hab imagecreate statt imagecreatetruecolor benutzt.
                              eines von beiden ändern und es klappt
                              Mess with the Besth, die like the rest!

                              Kommentar

                              Lädt...
                              X