2013-06-29 2 views
28

Я рассматривал различные вопросы, которые задавали этот вопрос, но я не могу сказать, где я ошибаюсь, вот мой код:API карт Google - карта центра на текущем местоположении клиента

<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> 

Первоначально он устанавливает центр в myLatlng1, а код внизу, чтобы установить его в текущее местоположение пользователя, ничего не делает, никаких идей?

Заранее спасибо.

+0

https://github.com/onury/geolocator определяет местоположение пользователя и автоматически создает карту с центрированным маркером. –

ответ

79

Попробуйте использовать следующий код, чтобы получить текущее местоположение пользователя (GeoLocation):

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

Для показывая пример, я удалил свой код PHP. Проверьте это JSFiddle

Упование вы понимаете.

+1

Спасибо за ваш фрагмент кода. Это действительно помогло мне – Dibish

+1

спасибо, что это очень полезно, мои любимые тогда –

+1

все работает очень хорошо ..thank dear :) –

Смежные вопросы