2012-05-12 49 views
8

我試圖找到用戶的地圖設置到這個位置傳單:如何找到用戶與傳單找到?

<script> 
    var map; 

    function initMap(){ 
     map = new L.Map('map',{zoomControl : false}); 
     var osmUrl = 'http://{s}.tile.openstreetmap.org/mapnik_tiles/{z}/{x}/{y}.png', 
      osmAttribution = 'Map data &copy; 2012 OpenStreetMap contributors', 
      osm = new L.TileLayer(osmUrl, {maxZoom: 18, attribution: osmAttribution}); 
     map.setView(new L.LatLng(51.930156,7.189230), 7).addLayer(osm); 
    } 

    function locateUser(){ 
     map.locate({setView : true}); 
    } 
</script> 

上執行的瀏覽器請求許可,但後來什麼也沒有發生?我的代碼有什麼問題?

+0

我們不知道什麼小冊子,或任何關於你在做什麼。這一行代碼聽起來不錯,但你真的需要給我們更多一點。也許是你的代碼的鏈接,以及迄今爲止你已經嘗試過的信息。另外,請去接受一些答案 - 您在9個月前還沒有接受答案的問題! –

+0

我在第一篇文章中編輯了整個源代碼。宣傳單張是地圖庫。詳情在這裏:http://leaflet.cloudmade.com/ – fillibuster

+0

你能否粘貼你的整個代碼?你是否包含了所有必需的傳單文件?你如何檢測用戶的位置?你的功能是否被執行? –

回答

8

你的地圖變量的範圍有問題。我發佈了一個修復代碼的示例:http://jsfiddle.net/XwbsU/3/

當您單擊「查找我!」時,您應該會收到瀏覽器的地理位置彈出窗口。

希望可以幫到你。

9

這是一個快速入侵。我推薦這個插件https://github.com/domoritz/leaflet-locatecontrol

var loadMap = function (id) { 
    var HELSINKI = [60.1708, 24.9375]; 
    var map = L.map(id); 
    var tile_url = 'http://{s}.tile.osm.org/{z}/{x}/{y}.png'; 
    var layer = L.tileLayer(tile_url, { 
     attribution: 'OSM' 
    }); 
    map.addLayer(layer); 
    map.setView(HELSINKI, 19); 

    map.locate({setView: true, watch: true}) /* This will return map so you can do chaining */ 
     .on('locationfound', function(e){ 
      var marker = L.marker([e.latitude, e.longitude]).bindPopup('Your are here :)'); 
      var circle = L.circle([e.latitude, e.longitude], e.accuracy/2, { 
       weight: 1, 
       color: 'blue', 
       fillColor: '#cacaca', 
       fillOpacity: 0.2 
      }); 
      map.addLayer(marker); 
      map.addLayer(circle); 
     }) 
     .on('locationerror', function(e){ 
      console.log(e); 
      alert("Location access denied."); 
     }); 
}; 

loadMap('map'); 
+0

您是否知道我可以在這裏添加幾個選項,特別是:locateOptions:{maxZoom:15} – user127181

+0

這裏是http://leafletjs.com/reference.html#map-locate-options文檔,您只需將其添加爲map.locate({maxZoom:15,...}) –