2016-07-17 2 views
0

Следующий сценарий JS (CSS/HTML, включенный для полноты) предназначен для открытия плиток карты листовки и отметки местоположения пользователя. Пока он открывает карту, он не помещает местоположение пользователя. Почему нет?Географическое положение с буклетами в JS

<!DOCTYPE html> 

<html> 

    <head> 

     <title>Leaflet GeoLocation</title> 

     <link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.css" /> 

     <script src="http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.js"></script> 

     <style> 
      body { 
       padding: 0; 
       margin: 0; 
      } 
      html, body, #map { 
       height: 100%; 
      } 
     </style> 

    </head> 

    <body> 

     <div id="map"></div> 

     <script> 

      var map = L.map('map').setView([43, -79], 18); 

      L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { 
       attribution: 'Map data &copy; <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>', 
       maxZoom: 18 
      }).addTo(map); 

      var newMarker = new L.marker(e.latlng).addTo(map); 

     </script> 

    </body> 

</html> 

ответ

2

Вы не пытаетесь найти местоположение пользователя в этой точке. Эта линия:

var newMarker = new L.marker(e.latlng).addTo(map); 

e не определен в коде вы предоставляете. Поэтому вам нужно дать значение широты/долготы.

+0

Спасибо. Следующие исправления и исправления. \t \t \t функция onLocationFound (е) { \t \t \t \t радиус переменная = e.accuracy/2; \t \t \t \t L.marker (e.latlng) .addTo (карта) \t \t \t \t \t .bindPopup ("Вы в" + радиус + "м от этой точки") openPopup(). \t \t \t \t L.circle (e.latlng, radius) .addTo (Карта); \t \t \t} \t \t \t \t \t \t функция onLocationError (е) { \t \t \t \t оповещения (e.message); \t \t \t} \t \t \t map.on (': найдено', onLocationFound); \t \t \t map.on ('locationerror', onLocationError); \t \t \t map.locate ({setView: true, maxZoom: 16}); – Iorek

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