Avatar billede mrfunder Nybegynder
05. marts 2007 - 18:10 Der er 21 kommentarer og
1 løsning

Kort med tilhørende ikoner- hvordan?

Jeg sidder og skal til at lave en map funktion, men har desværre ingen anelse om hvordan dette vil være nemmest.

Jeg har mit map som er 400x362 i størrelsen, og oven på dette skal jeg have placeret 72 ikoner. (Ikonerne kan enten være navn: 1,2,3.gif- de deler alle sammen størrelse 14x16px)

Jeg forestillede mig jeg kunne lave et array med værdierne for de forskellige ikoner; id, status(1-2 eller 3, heraf ikon billede), x, y).

Nu er jeg så på bar bund, hvordan skal jeg placere dette OVEN på mit kort? Gdlib? Divs? Hvordan laver jeg det så det er fungerer optimalt både i IE og Firefox

Illustrationer og forslag mh. kode ville være dejligt :-)
Avatar billede jakobdo Ekspert
06. marts 2007 - 11:36 #1
Jeg tror jeg ville vælge at sætte dem op via div'er.

og du kunne godt lave det i array stilen.

$alle_ikoner = array(
array(pic => '1.gif', x => '1', y => '1'),
array(pic => '2.gif', x => '15', y => '1'),
array(pic => '1.gif', x => '29', y => '1'));

Og så skal de selvfølge kodes i korrekt html - div efterfølgende.
Avatar billede mrfunder Nybegynder
07. marts 2007 - 11:06 #2
Er der ikke mere input vælger jeg at lukke til min egen fordel
Avatar billede jakobdo Ekspert
07. marts 2007 - 11:16 #3
Det vil altså sige du ikke kan tænke min ide videre eller hvad?
Avatar billede jakobdo Ekspert
07. marts 2007 - 11:22 #4
Eller vil du have en anden løsning?
Avatar billede mrfunder Nybegynder
07. marts 2007 - 12:22 #5
Din idé er topfin, men ikke konkret noget jeg kan bruge til noget- og ikke noget som jeg ikke allerede selv havde prøvet.. Mit problem er vel bare at jeg ikke kan få det til at virke optimalt :/
Avatar billede mrfunder Nybegynder
07. marts 2007 - 12:23 #6
Mit problem ligger i at når jeg sætter en position: 'top' kommer den til at ligge væsentlig længere nede på siden end som så..

.map {
    float: left;
    background-image: url('../gfx/map/world.gif');
    width: 713px;
    height: 409px;
}

.star {
    background-image: url('../gfx/icons/star1.gif');
    width: 11px;
    height: 10px;
}


<?
$coords = array(
        array(344, 100, 1, "København, Danmark"),
        array(230, 75, 3, "Nuuk, Grønland"),
        array(321, 110, 3, "London, England"),
        array(347, 110, 4, "Berlin, Tyskland"),
        array(363, 111, 3, "Warszawa, Polen"),
        array(355, 90, 3, "Stockholm, Sverige"),
        array(343, 88, 3, "Oslo, Norge"),
        array(370, 83, 3, "Helsinki, Finland"),
        array(328, 121, 4, "Paris, Frankrig"),
        array(171, 130, 3, "Ottawa, Canada"),
        array(168, 150, 3, "Washington D.C., USA"),
        array(179, 142, 3, "New York, USA"),
        array(116, 197, 3, "Mexico City, Mexico"),
        array(170, 233, 3, "Bogotá, Colombia"),
        array(184, 222, 1, "Caracas, Venezuela"),
        array(90, 51, 1, "Caracas, Venezuela"),
        array(306, 146, 3, "Lisabon, Portugal"),
        array(316, 152, 3, "Sevilla, Portugal"),
        array(313, 141, 3, "Madrid, Portugal"),
        array(324, 142, 3, "Barcelona, Portugal"),
        array(338, 134, 3, "Monaco, Frankrig"),
        array(354, 143, 3, "Rom, Italien"),
        array(306, 146, 3, "Monaco, Frankrig"),
        array(334, 108, 3, "Amsterdam, Holland"),
        array(357, 119, 3, "Prag, Tjekkiet"),
        array(370, 150, 3, "Athen, Grækenland"),
        array(375, 130, 3, "Sofia, Bulgarien"),
        array(391, 120, 3, "Bukarest, Rumænien"),
        array(400, 164, 3, "Damaskus, Syrien"),
        array(384, 137, 3, "Istanbul, Tyrkiet"),
        array(392, 145, 3, "Ankara, Tyrkiet"),
        array(385, 171, 3, "Cairo, Egypten"),
        array(385, 171, 3, "Cairo, Egypten"),
        array(307, 107, 3, "Dublin, Irland"),
        array(305, 165, 3, "Casablanca, Maraco"),
        array(289, 213, 3, "Dakar, Senegal"),
        array(332, 210, 3, "Abuja, Nigeria"),
        array(400, 241, 3, "Nairobi, Kenya"),
        array(405, 265, 3, "Dar es Salaam, Tanzania"),
        array(354, 273, 3, "Luanda, Angola"),
        array(363, 330, 3, "Cape Town, Syd Afrika"),
        array(423, 293, 3, "Antananarivo, Madagascar"),
        array(477, 202, 3, "Bombay, Indien"),
        array(482, 170, 3, "New Delhi, Indien"),
        array(510, 183, 3, "Dhaka, Bangladesh"),
        array(525, 201, 3, "Rangoon, Burma"),
        array(536, 209, 3, "Bangkok, Thailand"),
        array(541, 236, 3, "Kuala Lumpur, Malaysia"),
        array(545, 240, 3, "Singapore, Singapore"),
        array(551, 261, 3, "Jakarta, Indonesien"),
        array(600, 276, 3, "Darwin, Australien"),
        array(564, 320, 3, "Perth, Australien"),
        array(622, 341, 3, "Melbourne, Australien"),
        array(638, 328, 3, "Sydney, Australien"),
        array(679, 348, 3, "Wellington, New Zealand"),
        array(556, 143, 3, "Beijing, Kina"),
        array(565, 183, 3, "Guangzhou, Kina")
        );

print "<div class=\"map\">";
foreach($coords as $coord) {
    list($cor_x, $cor_y, $number, $name) = $coord;
    print "<div class=\"star\" style=\"position:relative; left:$cor_x; top:$cor_y;\">\n</div>";
}
?>
</div>
Avatar billede jakobdo Ekspert
07. marts 2007 - 12:31 #7
Prøv at ret:
position:relative
til:
position:absolute
i denne linie: print "<div class=\"star\" style=\"position:relative; left:$cor_x; top:$cor_y;\">\n</div>";
Avatar billede mrfunder Nybegynder
08. marts 2007 - 12:30 #8
Det har jeg allerede prøvet; så bliver stjerne placeret korrekt i form af hinanden- men de placeres nu ud fra browserens start, og ikke den tabel de ligger i- måske er det her problemet er? at sitet er opbygget med brug af tables?
Avatar billede jakobdo Ekspert
08. marts 2007 - 13:05 #9
Prøv at se koden her: http://www.codebreaker.dk/exp/766275exp.php

og her er tilhørende kode:

<html>
    <head>
        <title>766275</title>
        <style type="text/css">
            div#map {
                background: #00ff00 url('766275/400x400.jpg') no-repeat;
                position: relative;
                width: 400px;
                height: 400px;
            }
            div.position {
                position: absolute;
                width: 14px;
                height: 16px;
            }
        </style>
    </head>
    <body>
        <?php
        //http://www.eksperten.dk/spm/766275
       
        $positions = array(
        array('pic' => '1.gif','x' => 150, 'y' => 100),
        array('pic' => '2.gif','x' => 10,  'y' => 20),
        array('pic' => '3.gif','x' => 200, 'y' => 200)
        );
       
        echo '<div id="map">';
        foreach($positions AS $position)
        {
            echo '<div class="position" style="top: '.$position['y'].'; left: '.$position['x'].';"><img src="766275/'.$position['pic'].'" alt="'.$position['pic'].'" /></div>';
        }
        echo '</div>';
        ?>
    </body>
</html>
Avatar billede mrfunder Nybegynder
09. marts 2007 - 09:25 #10
Det jeg har lavet selv virker super når jeg bruger position absolute; eller det gør det dog ikke da det så placere det ud fra browserens start og ikke den tabel de ligger inden i.
Avatar billede jakobdo Ekspert
09. marts 2007 - 09:54 #11
Har du husket at give tabellen position: relative; ?
Avatar billede mrfunder Nybegynder
09. marts 2007 - 21:29 #12
Jeg har ikke givet min table, position: relative nej. Men min div har denne style.
Avatar billede jakobdo Ekspert
10. marts 2007 - 09:23 #13
Men hvorfor en tabel?
Kan du ikke bruge min kode som den er?
Den virker jo! :o)
Avatar billede mrfunder Nybegynder
10. marts 2007 - 18:31 #14
Det gør min egen kode også- men i det tilfælde hvor koden skal vises placerer den det så forkert
Avatar billede jakobdo Ekspert
11. marts 2007 - 10:06 #15
Hvad vil du have jeg skal svare på dit indlæg?
Skal jeg gætte hvad der er galt med din kode så? :o)
Avatar billede mrfunder Nybegynder
11. marts 2007 - 17:27 #16
Det ville være fedt!
Avatar billede mrfunder Nybegynder
11. marts 2007 - 17:27 #17
Ej spøg til side.. du har jo egentlig løst opgaven mere eller mindre, så smid et svar
Avatar billede jakobdo Ekspert
11. marts 2007 - 21:07 #18
Du må gerne få et svar.
Men jeg vil jo gerne prøve at hjælpe dig helt i mål.
Avatar billede capn Nybegynder
11. marts 2007 - 21:14 #19
Jeg har lavet noget tilsvarende for en kunde (efter hvad jeg kan forstå). Hvis du vil se et eksempel kan du se kildekoden til min implementation på:
http://www.projektbudapest.dk/index.php?page=8-etage

En anden tilgang til kort er at bruge Google Maps API (som måske ikke er så passende her?), Se:
http://www.projektbudapest.dk/index.php?page=budapest-kort-map
Avatar billede jakobdo Ekspert
12. marts 2007 - 08:05 #20
Jeg takker for point.
Avatar billede mrfunder Nybegynder
12. marts 2007 - 12:53 #21
jakobdo - det kan være du har msn eller noget? jeg kunne godt tænke mig at stille et par få spørgsmål hvis det er iorden :-)
Avatar billede jakobdo Ekspert
12. marts 2007 - 13:22 #22
jakobdo (at) hotmail [dot] com
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester