リーフレットマップに整数ズームレベルのみを使用させることはできません。 -/+コントロールボタンのみを使用する限り、マウスホイールやmap.fitBounds(ポリゴン)のような関数を使用するとすぐに分数ズームレベルになります。リーフレットマップで整数ズームレベル(小数点レベルなし)のみを使用する
レベル0〜17のタイルを使用しているため、10.5のように2つのレベルの間で分数ズームレベルになってしまったため、タイルは拡大縮小されてぼやけていました。
ドキュメントでは、zoomSnapとzoomDeltaのデフォルトは1であると言われています。だから、とにかく分数ズームレベルになってしまうのはなぜですか?どうすればこれを防ぐことができますか?
私はこれらの
<!-- Leaflet -->
<link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/leaflet.css" />
<script src="https://unpkg.com/[email protected]/dist/leaflet.js"></script>
<!-- L.esri for Leaflet -->
<script src="https://unpkg.com/[email protected]"></script>
<!-- Elevation plugin for Leaflet -->
<link rel="stylesheet" href="/app/libs/leaflet-elevation/dist/leaflet.elevation-0.0.4.css" />
<script src="https://d3js.org/d3.v3.min.js" charset="utf-8"></script>
<!--<script src="app/libs/leaflet-elevation/dist/leaflet.elevation-0.0.4.min.js"></script>-->
<script src="/app/libs/leaflet-elevation/dist/leaflet.elevation-0.0.4.src.js"></script>
<!-- Marker Cluster plugin for Leaflet -->
<link rel="stylesheet" type="text/css" href="https://unpkg.com/[email protected]/dist/MarkerCluster.Default.css">
<link rel="stylesheet" type="text/css" href="https://unpkg.com/[email protected]/dist/MarkerCluster.css">
<script src="https://unpkg.com/[email protected]/dist/leaflet.markercluster.js"></script>
<!-- zoomhome plugin for Leaflet -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css"/>
<link rel="stylesheet" href="/app/libs/leaflet-zoomhome/leaflet.zoomhome.css"/>
<script src="/app/libs/leaflet-zoomhome/leaflet.zoomhome.js"></script>
を使用して、ここで私は私のマップを初期化する方法だよ:
this.map = L.map(this.config.domNode, {
center: [50.13466432216696, -72.72949218750001],
zoom: 6,
zoomSnap: 1,
zoomDelta: 1,
zoomControl: false,
minZoom: 3,
maxZoom: 17,
scrollWheelZoom: this.config.scrollWheelZoom,
wheelDebounceTime: 20,
wheelPxPerZoomLevel: 50
});
L.Control.zoomHome({ position: 'topright' }).addTo(this.map);
すべてのプラグインをロードした後に 'zoomSnap'オプションが' 1'であることを確認できますか?すべてがロードされた後に 'console.log(map.options.zoomSnap)'を実行します。 – IvanSanchez
私は実際には犯人を見つけました。私は、あなたが言うように、zoomSnapの値が初期化後に変更されたと思っていました。おそらく、CDNを介してロードするプラグインの1つによって変わっていました。マップマップからベースマップに使用するtangramライブラリは、 "modifyScrollWheelBehavior"という関数でzoomSnapを0に設定しています。なぜ私は調査するのかは分かりませんが、実際には理由が分かりました。ベクトルタイルを使用しているので、おそらくこれは気にしませんが、マップ内の他のタイルレイヤとはまったく同じです。 – greenkarmic