Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Google maps API - Center map on client's current location

I've looked at the various other times this question has been asked but I can't quite put a finger on where I'm going wrong, here's my code:

<html> <head>     <title> Map </title>     <style>         html, body, #map-canvas {         margin: 0;         padding: 0;         height: 500px;         width: 800px;}     </style>     <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>     <script>         var map;         function initialize()         {             var myLatlng1 = new google.maps.LatLng(53.65914, 0.072050);              var mapOptions =              {                 zoom: 10,                 center: myLatlng1,                 mapTypeId: google.maps.MapTypeId.ROADMAP             };             var map = new google.maps.Map(document.getElementById('map-canvas'),             mapOptions);               <?php                 $sql = mysql_query("SELECT * FROM data ORDER BY ID DESC");                 while($row =mysql_fetch_array($sql))                 {                     $desc = $row['DESCRIPTION'];                     $location = $row['LOCATION'];                     $counter += 1;                  ?>              var marker = new google.maps.Marker({                 position: new google.maps.LatLng(<?php echo $location; ?>),                 map: map,                 title: '<?php echo $desc; ?>',                 icon: '/image/cam.png'             });             navigator.geolocation.getCurrentPosition(showPosition);           }          var showPosition = function (position)             {                map.setCenter(new google.maps.LatLng(position.coords.latitude, position.coords.longitude), 16);             }          google.maps.event.addDomListener(window, 'load', initialize);      </script> </head> 

It originally sets the center to myLatlng1, and the code at the bottom to set it to the user's current location doesn't do anything, any ideas?

Thanks in advance.

like image 241
James Avatar asked Jun 29 '13 16:06

James


People also ask

How do I display my current location?

There are two ways to get the current location of any Android device: Android's Location Manager API. Fused Location Provider: Google Play Services Location APIs.

How do I force Google Maps to update my location?

One way is to click the little circle above the Street View man's head. This forces it to detect your location, and Maps will ask you for permission to share your location. Assuming you accept, or have turned on auto-accept, it should then update your position to your new location.


1 Answers

Try using the below code to get the user's current location (GEOLOCATION):

 if (navigator.geolocation) {      navigator.geolocation.getCurrentPosition(function (position) {          initialLocation = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);          map.setCenter(initialLocation);      });  } 

For showing an example, I've removed your php code. Check this JSFiddle

Hope you understand.

like image 129
Praveen Avatar answered Oct 04 '22 11:10

Praveen