2016-07-17 14 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(E){ \t \t \t \t VAR半径= 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(map); \t \t \t} \t \t \t \t \t \t機能onLocationError(E){ \t \t \t \tアラート(e.message)。 \t \t \t} \t \t \t map.on( 'locationfound'、onLocationFound)。 \t \t \t map.on( 'locationerror'、onLocationError); \t \t \t map.locate({setView:true、maxZoom:16}); – Iorek

関連する問題