请帮我解决这个问题。
我有一个路线查找器,显示一个列表并映射车辆通过的各个点。当我点击列表中的某个项目时,可以在地图中看到该点,但是当我在同一位置有两个点(例如point1,point2)时,只显示最后一个点(point2)
当我点击point1时,我不知道如何做到这一点此点位于point2上方,反之亦然
我的代码是:
// When I clic in a item of the list
function searchPoint(x, y, zoom) {
if (x != 0 && x != '0' && x != '0.0') {
map.setCenter(
new OpenLayers.LonLat(x, y).transform(
new OpenLayers.Projection("EPSG:4326"),
map.getProjectionObject()
), zoom
);
}
}
layerRutasPuntosHistorial = new OpenLayers.Layer.Vector("Rutas Puntos Historial", {
//rendererOptions: { zIndexing: true },
strategies: [new OpenLayers.Strategy.Fixed()],
protocol: new OpenLayers.Protocol.HTTP({
url: "trackWeb.asmx/obtenerRutasPuntosHistorial",
readWithPOST: true,
params: { idDispositivo: $("#ddlDispositivos").val(), tipo: $(".datavalor.active").attr("data-valor"), fechaInicial: $("#txtFechaDesde").val(), fechaFinal: $("#txtFechaHasta").val() },
//params: { idDispositivo: $("#ddlDispositivos").val(), tipo: $(".btnTile.selectDates.selected").attr("data-valor"), fechaInicial: $("#txtFechaDesde").val() + " " + $("#ddHoraIn").val() + ":" + $("#ddMinutoIn").val() + ":00", fechaFinal: $("#txtFechaHasta").val() + " " + $("#ddHoraOut").val() + ":" + $("#ddMinutoOut").val() + ":00" },
headers: { "Content-Type": "application/json; charset=utf-8" },
format: new OpenLayers.Format.GeoJSON(),
contentType: 'application/json; utf-8',
dataType: 'json',
async: true
}),
styleMap: stylesRutas
});
var stylesRutas = new OpenLayers.StyleMap({
"default": new OpenLayers.Style(null, {
rules: [
new OpenLayers.Rule({
symbolizer: {
"Point": {
pointRadius: 6,
graphicName: "circle",
fillColor: "#F78F1E",
fillOpacity: 1,
strokeColor: "#F78F1E",
labelOutlineColor: "#F78F1E",
cursor: "pointer",
label: "${numero}",
fontColor: "#fff",
fontOpacity: 1,
fontFamily: "Arial",
fontSize: 9,
fontWeight: "600",
//graphicZIndex: 10,
//labelZIndex: 10,
//graphicZIndex : 9999999,
//zIndex: 99999999,
}
}
})
]
})
});
答案 0 :(得分:0)
您正在通过geoJson文件中的x,y查找。从逻辑上讲,计算机将按照检索的顺序查找和呈现项目,首先是point1,第二是point2。由于您没有为计算机提供任何名称,因此计算机无法确切地了解您想要的任何名称。
示例集:{{x,y},{x,y},{a,b},{c,d},{e,f}}
现在您要求计算机获取{x,y}
怎么知道,你想要哪一个?它没有。据其所知,一个{x,y}
与另一个没有什么不同。
您可以反向排序geoJSON文件,但是您可能会遇到与您的情况相反的情况,您希望显示第二个点而不是第一个点。但如果您不关心这一点 - 只需反向排序geoJSON。