我正在使用播放插件,我在图像叠加层上使用它。
https://github.com/hallahan/LeafletPlayback
我需要在放置标记之前缩放地板图。使用插件,标记放置在楼层地图之外的某些位置。
我能够解决GPS跟踪的问题,我已经编写了一个函数来缩放地图并将标记放在图层属性的pointToLayer方法中。
我也希望为标记做同样的事情。任何帮助表示赞赏。
const playbackOptions = {
playControl: true,
dateControl: true,
orientIcons: true,
fadeMarkersWhenStale: true,
// layer and marker options
layer: {
pointToLayer(featureData, latlng) {
const { lat, lng } = latlng;
let result = {};
if (featureData && featureData.properties && featureData.properties.path_options) {
result = featureData.properties.path_options;
}
if (!result.radius) {
result.radius = 5;
}
const scaleX = width / details.width;
const scaleY = height / details.length;
const m = {
x: lat * scaleX,
y: lng * scaleY,
};
const iconCls = 'asset-icon';
const item = L.marker(self.map.unproject([m.x, m.y], self.map.getMaxZoom()), {
icon: makeMarker(iconCls, 0),
opacity: 0.9,
type: 'asset',
lat,
lng,
});
item.bindTooltip(`<p>${lat}, ${lng}`, { className: 'asset-label', offset: [0, 0] });
return item;
}
},
marker: {
getPopup(featureData) {
let result = '';
if (featureData && featureData.properties && featureData.properties.title) {
result = featureData.properties.title;
}
return result;
}
}
};
答案 0 :(得分:0)
如果您检索实际的GPS坐标,实际上可能更容易实现反向,即地理配准您的图像叠加一次,而不是试图摆弄每个的地理坐标。您尝试相对于图像显示的功能。