【发布时间】:2014-03-28 14:00:13
【问题描述】:
我正在尝试让 Leaflet 用于标准的非地图图像,以便我可以使用像素而不是地理纬度和经度坐标在图像上放置标记。
这是我正在尝试使用的小提琴:
http://jsfiddle.net/letsgetsilly/8Neau/4/
<div id="map" style="width: 1500px; height: 2316px"></div>
<script src="http://cdn.leafletjs.com/leaflet-0.7.2/leaflet.js"></script>
<script>
var map = L.map('map', {
maxZoom: 4,
minZoom: 2,
crs: L.CRS.Simple
}).setView([0,50], 4);
var southWest = map.unproject([0, 4000], map.getMaxZoom());
var northEast = map.unproject([1500, 0], map.getMaxZoom());
map.setMaxBounds(new L.LatLngBounds(southWest, northEast));
//actual image dimensions: 1500 x 2000
var imageUrl = 'https://i.imgur.com/bXA34EQ.jpg';
var southWestSize = map.unproject([0, 2000], map.getMaxZoom());
var northEastSize = map.unproject([1500, 0], map.getMaxZoom());
L.imageOverlay(imageUrl, new L.LatLngBounds(southWestSize, northEastSize)).addTo(map);
function onMapClick(e) {
popup
.setLatLng(e.latlng)
.setContent("You clicked the map at " + e.latlng.toString())
.openOn(map);
}
map.on('click', onMapClick);
L.marker(map.unproject([800, 300])).addTo(map).bindPopup("<b>I'm a dog!</b><br />I am a popup.<br /> ").openPopup();
</script>
我在几个层面上苦苦挣扎:
- 我不明白如何为图片正确设置视图。传单需要什么?
- 我不知道如何获取图像的经纬度坐标
- 我不知道如何控制图像在屏幕上的位置,也不知道它的大小,以免它看起来被破坏
对于那些处于类似情况的人,我从以下来源找到了部分帮助:
Is Leaflet a good tool for non-map images?
http://omarriott.com/aux/leaflet-js-non-geographical-imagery/
【问题讨论】:
-
嘿,让我们傻傻地,你设法得到解决方案了吗?谢谢!
标签: javascript map leaflet