2014-02-03 2 views
-1

Привет, я пытаюсь сделать приложение с помощью Google Maps API (с этим руководством https://developers.google.com/maps/articles/phpsqlajax_v3). У меня есть вопрос, который я не могу решить. Как разместить маркер на этой карте, чтобы показать текущее местоположение? Я попытался изменить "http://maps.googleapis.com/maps/api/js?sensor=true", но ничего не меняется. Я также пытался использовать геолокацию HTML, но не повезло. Я читаю отсюда link , но все равно не повезло. Каков правильный способ сделать это? Я могу представить код, который у меня есть до сих пор , если это необходимо.Использование PHP/MySQL с Google Maps (добавление маркера текущей позиции)

<!DOCTYPE html > 
    <head> 
    <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" /> 
<meta http-equiv="Pragma" content="no-cache" /> 
<meta http-equiv="Expires" content="0" /> 
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> 
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"/> 
    <title>PHP/MySQL & Google Maps Example</title> 
    <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=true"></script> 

    <script type="text/javascript"> 

    //<![CDATA[ 

    var customIcons = { 
     restaurant: { 
     icon: 'green-cross.png' 
     }, 
     bar: { 
     icon: 'http://labs.google.com/ridefinder/images/mm_20_red.png' 
     } 
    }; 

function get_location() { 
    navigator.geolocation.getCurrentPosition(show_map); 
} 
    function load() { 
     var map = new google.maps.Map(document.getElementById("map"), { 
     center: new google.maps.LatLng(39.640793 , 22.416093), 
     zoom: 13, 
     mapTypeId: 'roadmap' 
     }); 
     var infoWindow = new google.maps.InfoWindow; 



     // Change this depending on the name of your PHP file 
     downloadUrl("phpsqlajax_genxml.php", function(data) { 
     var xml = data.responseXML; 
     var markers = xml.documentElement.getElementsByTagName("marker"); 
     for (var i = 0; i < markers.length; i++) { 
      var name = markers[i].getAttribute("name"); 
      var address = markers[i].getAttribute("address"); 
      var type = markers[i].getAttribute("type"); 
      var point = new google.maps.LatLng(
       parseFloat(markers[i].getAttribute("lat")), 
       parseFloat(markers[i].getAttribute("lng"))); 
      var html = "<b>" + name + "</b> <br/>" + address; 
      var icon = customIcons[type] || {}; 
      var marker = new google.maps.Marker({ 
      map: map, 
      position: point, 
      icon: icon.icon 
      }); 
      bindInfoWindow(marker, map, infoWindow, html); 
     } 
     }); 
    } 

    function bindInfoWindow(marker, map, infoWindow, html) { 
     google.maps.event.addListener(marker, 'click', function() { 
     infoWindow.setContent(html); 
     infoWindow.open(map, marker); 
     }); 
    } 

    function downloadUrl(url, callback) { 
     var request = window.ActiveXObject ? 
      new ActiveXObject('Microsoft.XMLHTTP') : 
      new XMLHttpRequest; 

     request.onreadystatechange = function() { 
     if (request.readyState == 4) { 
      request.onreadystatechange = doNothing; 
      callback(request, request.status); 
     } 
     }; 

     request.open('GET', url, true); 
     request.send(null); 
    } 

    function doNothing() {} 


    //]]> 

    </script> 

    </head> 

    <body onload="load()"> 
    <div id="map" style="width: 1920px; height: 1080px"></div> 
    </body> 

</html> 
+0

API включает только информацию о том, что вы используете датчик, изменяя это, ничего не делая. Мы не можем помочь вам без вашего кода. [пример геолокации из документации] (https://developers.google.com/maps/documentation/javascript/examples/map-geolocation) – geocodezip

ответ

0

Простейший пример, который я могу придумать, чтобы поместить маркер с использованием html5 геолокации:

function initialize() { 

    if (navigator.geolocation) 
    { 
     var position = navigator.geolocation.getCurrentPosition(); 
     yourLat = position.coords.latitude; 
     yourLng = position.coords.longitude; 
     var myLatlng = new google.maps.LatLng(yourLat, yourLng); 
     var mapOptions = { 
     zoom: 4, 
     center: myLatlng 
     } 
     var map = new google.maps.Map(document.getElementById('your-map-canvas'), mapOptions); 

     var marker = new google.maps.Marker({ 
      position: myLatlng, 
      map: map, 
      title: 'Hello World!' 
     }); 
    } 
} 

google.maps.event.addDomListener(window, 'load', initialize); 

Адаптированный: https://developers.google.com/maps/documentation/javascript/examples/marker-simple и http://www.w3schools.com/html/html5_geolocation.asp.

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