Avatar billede pemo123456 Novice
22. september 2011 - 16:58 Der er 7 kommentarer og
1 løsning

Lave div container med scrollbar til infowindow i Google map

Hej

Håber jeg er i rigtig kategori.

Jeg har lavet en side i php og med mysql database. På siden bruger jeg google maps, hvor jeg har infowindow. Noget af den tekst jeg henter, er for omfangsrig til naturligt at være i infowindow'et, hvorfor det spilder ud over kanten i top og bund. Jeg har læst, at man kan sætte en div container, og i den definere, hvor bred infowindow'et skal være, samt at der skal være auto scroll. Jeg er desværre bare alt for grøn til at stykke det sammen.

Den mest simple kode, jeg har set til div container, er som følger, men jeg har desværre ingen idé om, hvor jeg skal sætte den ind for at få det til at virke. Håber der en en ekspert, der kan hjælpe.

div.infowindow {
    max-height:250px;
    overflow-y:auto;
}


Koden til google maps ser ud som følger, og er taget fra google egne sider:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <title>Google Maps AJAX + MySQL/PHP Example</title>
    <script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAjU0EJWnWPMv7oQ-jjS7dYxTPZYElJSBeBUeMSX5xXgq6lLjHthSAk20WnZ_iuuzhMt60X_ukms-AUg"
            type="text/javascript"></script>

    <script type="text/javascript">
    //<![CDATA[

    var iconBlue = new GIcon();
    iconBlue.image = 'http://labs.google.com/ridefinder/images/mm_20_blue.png';
    iconBlue.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';
    iconBlue.iconSize = new GSize(12, 20);
    iconBlue.shadowSize = new GSize(22, 20);
    iconBlue.iconAnchor = new GPoint(6, 20);
    iconBlue.infoWindowAnchor = new GPoint(5, 1);

    var iconRed = new GIcon();
    iconRed.image = 'http://labs.google.com/ridefinder/images/mm_20_red.png';
    iconRed.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';
    iconRed.iconSize = new GSize(12, 20);
    iconRed.shadowSize = new GSize(22, 20);
    iconRed.iconAnchor = new GPoint(6, 20);
    iconRed.infoWindowAnchor = new GPoint(5, 1);

    var customIcons = [];
    customIcons["restaurant"] = iconBlue;
    customIcons["bar"] = iconRed;

    function load() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());
        map.setCenter(new GLatLng(47.614495, -122.341861), 13);

        GDownloadUrl("phpsqlajax_genxml.php", function(data) {
          var xml = GXml.parse(data);
          var markers = xml.documentElement.getElementsByTagName("marker");
          for (var i = 0; i < markers.length; i++) {
            var name = markers[i].getAttribute("name");
            var address = markers[i].getAttribute("address");
            var type = markers[i].getAttribute("type");
            var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
                                    parseFloat(markers[i].getAttribute("lng")));
            var marker = createMarker(point, name, address, type);
            map.addOverlay(marker);
          }
        });
      }
    }

    function createMarker(point, name, address, type) {
      var marker = new GMarker(point, customIcons[type]);
      var html = "<b>" + name + "</b> <br/>" + address;
      GEvent.addListener(marker, 'click', function() {
        marker.openInfoWindowHtml(html);
      });
      return marker;
    }
    //]]>
  </script>

  </head>

  <body onload="load()" onunload="GUnload()">
    <div id="map" style="width: 500px; height: 300px"></div>
  </body>
</html>
Avatar billede majbom Novice
22. september 2011 - 19:20 #1
har du et link til siden?
Avatar billede pemo123456 Novice
22. september 2011 - 19:36 #2
Ja, det er her - http://jungsontour.dk/index.php

Mangler stadig at lægge meget ind, hvorfor jeg ikke satte link på til at starte med. Men prøv at finde den markør, der er for Acapulco, så kan du se problemstillingen.
Avatar billede majbom Novice
22. september 2011 - 19:54 #3
prøv med:

GEvent.addListener(marker, 'click', function() {
  marker.openInfoWindowHtml(html, {maxHeight:400, autoScroll:true});
});



det er muligt du også skal have max-width på og max-height skal sikkert også lige tilpasses din side...
Avatar billede pemo123456 Novice
22. september 2011 - 20:09 #4
Lige i skabet - kæmpe tak for hjælpen. Smid venligst et svar, så er der point på vej! :-)
Avatar billede majbom Novice
22. september 2011 - 20:15 #5
kommer her :)

(utroligt hvad man kan finde på google ;)
Avatar billede pemo123456 Novice
22. september 2011 - 20:19 #6
Ja - det er rigtig - det står der stort set alt sammen et eller andet sted på google, men det er noget nemmere, når man ved hvad man skal søge efter. Jeg var i hvert fald ikke så god til det, som du var, så igen tak for hjælp. :-)
Avatar billede majbom Novice
22. september 2011 - 20:21 #7
selv tak :)
Avatar billede majbom Novice
22. september 2011 - 20:21 #8
og tak for point!
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