Avatar billede xtr0 Nybegynder
26. oktober 2006 - 02:11 Der er 4 kommentarer og
2 løsninger

GoogleMaps API tryk på punkt og få koordinater

Hej, jeg har rodet lidt med GoogleMaps til en lille side jeg har kørende, og det er noget meget basalt jeg skal bruge. Jeg har denne kode til min side:
<!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 JavaScript API Example</title>
    <script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAAylVIq-WVTfiXh0eVBVvVNBTj_jDnZZe-Zg8qsxtQB3pyvsqYDRSJOyinyI1INyLIw0CAbcNXCBQuhg"
      type="text/javascript"></script>
    <script type="text/javascript">

    //<![CDATA[

    function load() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());
       
        var point = new GPoint(55.683585, 12.570076);
       
       
        GEvent.addListener(map, "moveend", function() {
          var center = map.getCenter();
          document.getElementById("message").innerHTML = center.toString();
        });
       
        map.setCenter(new GLatLng(55.683585, 12.570076), 13);
      }
    }

    //]]>
    </script>
  </head>
  <body onload="load()" onunload="GUnload()">
    <div id="map" style="width: 500px; height: 300px"></div>
    <div id="message"></div>
  </body>
</html>

Denne kode gør at man på centrum får centrums koordinater i div'en med id'et message. Imidlertid kunne jeg godt tænke mig et system som lavede en 'mark' når man trykkede et sted med kortet. Og så skulle koordinaterne til den mark havne i enten message eller i to form felter.

Noget lignende:
http://www.gorissen.info/Pierre/maps/googleMapLocationv3.php
Jeg har dog meget svært ved at skille deres kildekode ad til min simple krav.

Nogen der kan lave det?
Avatar billede jhe-ting Nybegynder
26. oktober 2006 - 06:21 #1
Det er nok i <b>denne</b> del af koden du kan finde det du har brug for.


    GEvent.addListener(map, 'click', function(overlay, point) {
        if (overlay) {
            map.removeOverlay(overlay);
      } else if (point) {
            map.recenterOrPanToLatLng(point);
            var marker = new GMarker(point);
            map.addOverlay(marker);
        // point = Lat/Lon:(4.7021484375, 51.971345808851716)
        var matchll = /\(([-.\d]*), ([-.\d]*)/.exec( point );
        if ( matchll ) {
                var lat = parseFloat( matchll[1] );
                var lon = parseFloat( matchll[2] );
        lat = lat.toFixed(6);
        lon = lon.toFixed(6);

            var message = "geotagged geo:lat=" + lat + " geo:lon=" + lon + " ";
            var messageRoboGEO = lat + ";" + lon + "";
        } else {
            var message = "<b>Error extracting info from</b>:" + point + "";
            var messagRoboGEO = message;
        }

        marker.openInfoWindowHtml(message);
        document.getElementById("geocode").value = message;
        document.getElementById("geocodeRoboGEO").value = messageRoboGEO;
        document.getElementById("geocode").focus();
        document.getElementById("geocode").select();

        document.getElementById("maplink").href = baseLink + "?lat=" + lat + "&lon=" + lon ;
              document.getElementById("multimap").href = multimapBaseLink + "&lat=" + lat + "&lon=" + lon ;
            document.getElementById("frmLat").value = lat;
              document.getElementById("frmLon").value = lon;

    }
    });
Avatar billede xtr0 Nybegynder
26. oktober 2006 - 20:27 #2
Løste det med:
    <script type="text/javascript">
        //<![CDATA[
    function load() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
        map.addControl(new GLargeMapControl());
    map.addControl(new GMapTypeControl());
    map.setCenter(new GLatLng(55.683585, 12.570076), 13);

    var lol = new GMarker(55.683585, 12.570076);
    map.addOverlay(lol);

    GEvent.addListener(map, "click", function(overlay, point) {
       
        if(overlay) {
            map.removeOverlay(overlay);
        }
        if (point) {
            map.clearOverlays();
            map.panTo(point);
                 
            var marker = new GMarker(point);
            map.addOverlay(marker);
        }
    });
      }
    }
  //]]>
    </script>
Avatar billede jhe-ting Nybegynder
26. oktober 2006 - 21:19 #3
fint nok

addListener ... "click" ... er nøgleordet  ;o)
Avatar billede jhe-ting Nybegynder
22. november 2006 - 00:04 #4
Lukketid?
Giv eller tag points...
Avatar billede xtr0 Nybegynder
27. november 2006 - 19:03 #5
ok. sorry.
Avatar billede jhe-ting Nybegynder
28. november 2006 - 21:56 #6
Tak for point :P
Held og lykke med det. :o)
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