我在Leaflet.js教程中创建了一个简单的地图,如本例所示:
var map=L.map('map').setView([51.505,-0.09], 13);
现在,目标位置以地图为中心显示。
我的地图容器的大小为600x400像素。如何在容器内的自定义位置显示给定目标?让我们说我希望该位置水平居中,但距离顶部50个像素。
答案 0 :(得分:1)
使用名为latLngToContainerPoint的L.Map
和containerPointToLatLng的// Get LatLng position of the marker
var oldLatLng = marker.getLatLng();
// Convert LatLng to containerpoint in pixels.
var oldPoint = map.latLngToContainerPoint(oldLatLng);
// Calculate new point
var newPoint = L.point(oldPoint.x, oldPoint.y + (oldPoint.y - 50));
// Convert point to LatLng
var newLatLng = map.containerPointToLatLng(newPoint);
// Set new map view
map.setView(newLatLng);
两种实用方法很容易做到。
{{1}}
这是关于Plunker的一个工作示例:http://plnkr.co/edit/8y5Klz?p=preview