2017-11-01 7 views
7

私はMapBoxglで作業しています。いくつかのマーカーを追加したいと思います。ここで MapBoxマーカーズーム時に移動

は私のindex.htmlです:

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="UTF-8" /> 
     <link href=" /assets/css/bootstrap.min.css " rel="stylesheet" /> 
     <link href=" /assets/css/mapbox-gl.css " rel="stylesheet" /> 
     <link href=" /assets/css/main.css " rel="stylesheet" /> 
</head> 
<body> 
     <div id="map"></div> 

<script src="/assets/js/mapbox-gl.js"></script> 
<script src="/assets/js/map-style.js"></script> 

</body> 
</html> 

これでマップ-style.js:

#map { position:absolute; top:0; bottom:0; width:100% } 

.markers { 
    display: absolute; 
    border: none; 
    border-radius: 50%; 
    cursor: pointer; 
    padding: 0; 
} 

var map = new mapboxgl.Map({ 
    container: 'map', 
    center: [57.3221, 33.5928], 
    zoom: 5, 
    style: style 
}); 


var geojson = { 
type: 'FeatureCollection', 
features: [{ 
type: 'Feature', 
geometry: { 
    type: 'Point', 
coordinates: [30.61, 46.28] 
}, 
properties: { 
    title: 'point 1', 
    description: 'point 1 Description', 
    message: 'point1', 
    iconSize: [25, 25] 
} 
}, 
{ 
type: 'Feature', 
geometry: { 
    type: 'Point', 
coordinates: [30.62, 46.2845] 
}, 
properties: { 
    title: 'point 2', 
    description: 'point 2 Description', 
    message: 'point 2', 
    iconSize: [25, 25] 
} 
    }] 
}; 

map.on('load', function() { 
// add markers to map 
geojson.features.forEach(function(marker) { 
// create a DOM element for the marker 
var el = document.createElement('div'); 
el.className = 'markers'; 
el.style.backgroundImage = 'url(assets/marker-azure.png)'; 
//el.style.width = marker.properties.iconSize[0] + 'px'; 
el.style.height = marker.properties.iconSize[1] + 'px'; 

el.addEventListener('click', function() { 
    window.alert(marker.properties.message); 
}); 

// add marker to map 
new mapboxgl.Marker(el) 
    .setLngLat(marker.geometry.coordinates) 
    .addTo(map); 
}); 
}); 

そして、次のmain.cssマップに関連する部分とマーカーであります

私の問題は、マーカにwidthプロパティを追加すると、アイコンが正しく表示されます(ビットストレッチあり)がw栄座標と下図のように、ズームに移動:widthプロパティが除去された場合に一方

enter image description here

、それらは適切な場所にあり、ズーミングに移動しないが、それらは非常に延伸され事実として、ワイド画面として(次の画像):

enter image description here

それは私がブートストラップを使用してきたことは注目すべきです。これはその理由でしょうか?そうでない場合は、何が問題なのですか?

おかげ

答えて

4

私は解決策を見つけたと、この問題が発生します他の人とここでそれを共有しています。この問題は、最新ではないバージョンのライブラリを使用していることが原因です。最新のリリースにアップグレードした後、私はその問題を取り除くことができました。

npmを使用すると、この種の問題が発生することがあります。ライブラリが完全にダウンロードされ、最新のリリースであることを確認してください。

MapBoxの最新リリースは、hereにあります。