Avatar billede sorenmt84 Juniormester
21. januar 2017 - 10:34 Der er 2 kommentarer

Google maps api - opdater til visning af nuværende lokation

Jeg har fundet dette api script til google maps, der viser et kort og hvor man så kan klikke på det og indsætte en markør og koordinaterne vises i en form neden for.
Jeg kunne godt tænke mig at få det opdateret, så det ved load tager den nuværende lokation for den der loader siden og indsætter en markør der. Efterfølgende kan brugeren så flytte på den, hvis den ikke er helt korrekt.

Kan du hjælpe?

html fil:
<!DOCTYPE html>
<html>
    <head>
        <style type="text/css">
          #map{ width:700px; height: 500px; }
        </style>
        <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=123"></script>
        <title>Save Marker Example</title>
    </head>
    <body>
        <h1>Select a location!</h1>
        <p>Click on a location on the map to select it. Drag the marker to change location.</p>
       
        <!--map div-->
        <div id="map"></div>
       
        <!--our form-->
        <h2>Chosen Location</h2>
        <form method="post">
            <input type="text" id="lat" readonly="yes"><br>
            <input type="text" id="lng" readonly="yes">
        </form>
       
        <script type="text/javascript" src="map.js"></script>
    </body>
</html>


map.js:
//map.js

//Set up some of our variables.
var map; //Will contain map object.
var marker = false; ////Has the user plotted their location marker?
       
//Function called to initialize / create the map.
//This is called when the page has loaded.
function initMap() {

    //The center location of our map.
    var centerOfMap = new google.maps.LatLng(56.169536, 9.549851);

    //Map options.
    var options = {
      center: centerOfMap, //Set center.
      zoom: 17 //The zoom value.
    };

    //Create the map object.
    map = new google.maps.Map(document.getElementById('map'), options);

    //Listen for any clicks on the map.
    google.maps.event.addListener(map, 'click', function(event) {               
        //Get the location that the user clicked.
        var clickedLocation = event.latLng;
        //If the marker hasn't been added.
        if(marker === false){
            //Create the marker.
            marker = new google.maps.Marker({
                position: clickedLocation,
                map: map,
                draggable: true //make it draggable
            });
            //Listen for drag events!
            google.maps.event.addListener(marker, 'dragend', function(event){
                markerLocation();
            });
        } else{
            //Marker has already been added, so just change its location.
            marker.setPosition(clickedLocation);
        }
        //Get the marker's location.
        markerLocation();
    });
}
       
//This function will get the marker's current location and then add the lat/long
//values to our textfields so that we can save the location.
function markerLocation(){
    //Get location.
    var currentLocation = marker.getPosition();
    //Add lat and lng values to a field that we can save.
    document.getElementById('lat').value = currentLocation.lat(); //latitude
    document.getElementById('lng').value = currentLocation.lng(); //longitude
}
       
       
//Load the map when the page has finished loading.
google.maps.event.addDomListener(window, 'load', initMap);
Avatar billede olsensweb.dk Ekspert
22. januar 2017 - 14:32 #2
>Jeg har fundet dette api script til google maps,
hvor ?? et link kunne give os mere information.

det ville være forholdsvis nemt at lave hvis du anvendte navigator.geolocation.getCurrentPosition, som du anvendte i http://www.computerworld.dk/eksperten/spm/1012984 , så er det bare at skrive de 2 script sammen.
men det kræver en sikker forbindelse.

hvis du ikke anvender en sikker forbindelse får du denne besked i consolen

getCurrentPosition() and watchPosition() no longer work on insecure origins. To use this feature, you should consider switching your application to a secure origin, such as HTTPS. See https://goo.gl/rStTGz for more details.

og scriptet virker ikke. der er ikke noget problem når man tester localt
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

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