我尝试查看地图上的所有标记。
为此,我实现了以下逻辑
所有逻辑都在对象内部。
setLocation(places) {
try {
const {
markers,
markerArray
} = this.getMarkers(places);
const group = L.featureGroup(markerArray);
this.map.addLayer(markers);
this.map.fitBounds(group.getBounds());
} catch (error) {
console.log(`Error: ${error.message} Probably no places found`);
}
},
places
是一个对象数组,其中每个对象都包含纬度和经度属性。对于每个这些对象,都会创建一个标记。逻辑如下,并从getMarkers()
方法中调用
getMarkers(points = buysmoke.points) {
const markers = L.markerClusterGroup();
const markerArray = [];
for (const point of points) {
const content = this.getContent(point);
const icon = this.createIcon(point.categoria);
const popup = this.createPopup(content);
const marker = L.marker([point.latitud, point.longitud], {
icon: icon
}).bindPopup(popup);
markerArray.push(marker);
markers.addLayer(marker);
}
return {
markers: markers,
markerArray: markerArray
};
},
此逻辑正在处理与美国相对应的一组数据。当我尝试使用来自欧洲的数据集进行同样的操作时,逻辑不起作用,而是向我显示了整个世界的地图。地图上的其余互动将继续起作用。
我试图了解原因,但没有成功。
如果您需要任何其他信息,请告诉我。
谢谢
更新1
欧洲的数据集包含195条记录,仅对其中的12条进行探测并按预期工作。经度和纬度是否有可能证明了这一问题?如果可能的话,有什么友好的方法可以跟踪问题吗?
更新2
实际上,问题是由一系列错误的长度引起的,长度不正确是一种特殊的坐标。将其从数据集中删除时,标记会按估计的那样绘制在地图上
无论如何,非常感谢。我希望这种经历能为某人服务