2016-09-05 2 views
1

マップ上にジオロケーションを使用しています。ジオロケーションが見つかったときにズームレベルを設定する方法がわかりません。私のコードは次のようになります:リーフレット/マップボックス:ジオロケーションズーム

if (!navigator.geolocation) { 
    geolocate.innerHTML = 'Geolocation is not available'; 
} else { 
    geolocate.onclick = function (e) { 
     var tl = new TimelineMax({repeat:2}); 
     tl.to("svg.pointwhite", .10, {transformOrigin: "50% 100%", scaleY:0.25, yoyo:true, repeat:1}) 
      .to("svg.pointwhite", .65, {y:-6, ease:Circ.easeOut, yoyo:true, repeat:1});     
     e.preventDefault(); 
     e.stopPropagation(); 
     map.locate();   
    }; 
} 

ズームレベルを設定したのはmap.locateですか?私はもちろんそれを試して失敗しました。いつものように、皆さんが提供できる助けに本当に感謝しています。

答えて

0

this linkを参照してください。

locate()メソッドを使用する場合は、Locate optionsオブジェクトを指定できます。これはmaxZoomプロパティを含めることができます。

map.locate({maxZoom: 18}); 

しかし、私はmap.setView()を使用するリーフレットを使用する場合は、あなたがminZoom

+0

ええ、maxZoomで問題が解決されない: –

1

の種類を指定することはできませんように思えます。リーフレットのナビゲータコード:

if (navigator.geolocation) { 
    navigator.geolocation.getCurrentPosition(function(position) { 
    var pos = { 
    latlng: {lat:position.coords.latitude,lng:position.coords.longitude}, 
    lat:position.coords.latitude, 
    lng:position.coords.longitude 
    }; 

    addMarker(pos); 
    map.setView(L.latLng(pos.lat, pos.lng),13); 

}); 
} else { 
    // Browser doesn't support Geolocation 
    handleLocationError(false, infoWindow, map.getCenter()); 
}