Avatar billede bugger2 Nybegynder
10. juni 2010 - 13:47 Der er 3 kommentarer og
1 løsning

Google.maps JS-kode

Hej med jer

Jeg prøver af hele mit hjerte at få den her google.maps ting til at fungere og her skal jeg som det første sige at jeg er IKKE den skarpeste kniv i skuffen til javascript.

Sagen er at jeg har en ACCESS database med mange (!) adresser som jeg gerne vil have mulighed for at vise på et google.maps kort, et af gangen. Hvis man klikker på en adresselink bliver man ført videre til en ny side hvor man så kan se et kort med den aktuelle adresse. Altså en adresse på hver kort.

Jeg bruger ASP "classic" og variablerne jeg får med til kortsiden er :

vejnavn=request.form("vejnavn")
postnr=request.form("postnr")
bynavn=request.form("bynavn")

meningen er at når min kortside loader kommer der relevant kort med adressen. Jeg har brugt en del tid på google.maps API dokumentation, men trods det kan jeg ikke få det til at funke. Her er min udgangskode:


<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no"/>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>Google Maps JavaScript API v3 Example: Geocoding Simple</title>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
  var geocoder;
  var map;
  function initialize() {
    geocoder = new google.maps.Geocoder();
    var latlng = new google.maps.LatLng(-34.397, 150.644);
    var myOptions = {
      zoom: 8,
      center: latlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    }
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
  }

  function codeAddress() {
    var address = document.getElementById("address").value;
    if (geocoder) {
      geocoder.geocode( { 'address': address}, function(results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
          map.setCenter(results[0].geometry.location);
          var marker = new google.maps.Marker({
              map: map,
              position: results[0].geometry.location
          });
        } else {
          alert("Geocode was not successful for the following reason: " + status);
        }
      });
    }
  }
</script>
</head>
<body style="margin:0px; padding:0px;" onload="initialize()">
  <div>
    <input id="address" type="textbox" value="højbjerg, denmark">
    <input type="button" value="Geocode" onclick="codeAddress()">
  </div>
<div id="map_canvas" style="width:100%; height:90%"></div>
</body>
</html>

Og den side virker, men den skal virke uden formen og det skal som sagt bare være sådan at javascripten bliver eksekveret med de tre variabler jeg har hentet fra tidligere side (vejnavn,postnr,bynavn) når siden loader. Har i et forslag til hvordan jeg får mine data "ind i" javascriptet og får ekskveret scriptet.?
Avatar billede intenz Novice
10. juni 2010 - 13:59 #1
Jeg har tidligere svaret på et lignende spørgsmål, du kan hapse koden derfra.

http://www.eksperten.dk/spm/906071#reply_7569178
Avatar billede bugger2 Nybegynder
11. juni 2010 - 13:39 #2
Hej intenz

Jeg har mokket lidt med din kode, men som jeg skrev øverst er min JS viden begrænset. Her er hvad jeg har gjort

<script type="text/javascript">
var vejnavn = "<%= vej %>";
var bynavn = "<%= bynavn %>";
var map = null;
var geocoder = null;
function showAddress(address) {
    var map = new GMap2(document.getElementById("map_canvas"));
        var geocoder = new GClientGeocoder();
    if (geocoder) {
        geocoder.getLatLng(address, function(point) {
            if (!point) {
                alert(address + " kunne ikke findes!");
            } else {
                map.setCenter(point, 14);
                var marker = new GMarker(point);
                map.addOverlay(marker);
            }
        });
    }
}

</script>

Altså hentet 2 ASP variabler ind i Javascriptet, så far so good, men hvordan får jeg ekskveret scriptet med "vejnavn" og "bynavn" automatisk og ikke hentet fra dit link?
Avatar billede intenz Novice
11. juni 2010 - 14:43 #3

<script src="http://maps.google.com/maps?file=api&amp;v=2.x&amp;key=ABQIAAAAzr2EBOXUKnm_jVnk0OJI7xSosDVG8KKPE1-m51RBrvYughuyMxQ-i1QfUnH94QxWIa6N4U6MouMmBA" type="text/javascript"></script>
<script type="text/javascript">
var map = null;
var geocoder = null;
function showAddress(address) {
    var map = new GMap2(document.getElementById("map_canvas"));
        var geocoder = new GClientGeocoder();
    if (geocoder) {
        geocoder.getLatLng(address, function(point) {
            if (!point) {
                alert(address + " kunne ikke findes!");
            } else {
                map.setCenter(point, 14);
                var marker = new GMarker(point);
                map.addOverlay(marker);
            }
        });
    }
}

window.onload = function() {
  showAddress('<%= vej %>, <%= bynavn %>');
}

</script>
<div id="map_canvas" style="width: 400px; height: 250px"></div>
Avatar billede bugger2 Nybegynder
14. juni 2010 - 13:32 #4
Perfekt intenz  :-)
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