使用 arcgis API 在 esri 地图中发现点是否在线
finding is point laying on line or not in esri map using arcgis API
我正在尝试查找该点是否位于直线上,如下所示
function identifyFeatures(evt){
var extentGeom = pointToExtent(map,evt.mapPoint,10);
var filteredGraphics = dojo.filter(testLayer.graphics, function(gg) {
if(extentGeom.contains(gg.geometry.getExtent())){
return extentGeom.contains(gg.geometry.getExtent());
} else {
return gg.geometry.getExtent().contains(extentGeom);
}
});
var content = "";
content = "<i>Total Features: " + filteredGraphics.length + "</i>";
map.infoWindow.setContent(content);
map.infoWindow.setTitle("Identify Results");
var anchor = map.getInfoWindowAnchor(evt.screenPoint);
map.infoWindow.show(evt.screenPoint,anchor);
};
我正在使用 contains extent 方法并尝试检查是否被点击
点范围落在线范围上或线范围落在单击上
point extent.But 如果我点击线的中心,那么只有我得到
特征。
可以看到代码fiddle
谁能建议我有没有其他方法来检查点是否在线?
如果点的范围(用您的 extentToPoint()
函数填充)intersects()
与线的几何形状,您应该只过滤图形。
function identifyFeatures(evt){
var extentGeom = pointToExtent(map,evt.mapPoint,10);
var filteredGraphics = dojo.filter(testLayer.graphics, function(gg) {
return extentGeom.intersects(gg.geometry);
});
var content = "<i>Total Features: " + filteredGraphics.length + "</i>";
map.infoWindow.setContent(content);
map.infoWindow.setTitle("Identify Results");
map.infoWindow.show(evt.screenPoint,map.getInfoWindowAnchor(evt.screenPoint));
};
我正在尝试查找该点是否位于直线上,如下所示
function identifyFeatures(evt){
var extentGeom = pointToExtent(map,evt.mapPoint,10);
var filteredGraphics = dojo.filter(testLayer.graphics, function(gg) {
if(extentGeom.contains(gg.geometry.getExtent())){
return extentGeom.contains(gg.geometry.getExtent());
} else {
return gg.geometry.getExtent().contains(extentGeom);
}
});
var content = "";
content = "<i>Total Features: " + filteredGraphics.length + "</i>";
map.infoWindow.setContent(content);
map.infoWindow.setTitle("Identify Results");
var anchor = map.getInfoWindowAnchor(evt.screenPoint);
map.infoWindow.show(evt.screenPoint,anchor);
};
我正在使用 contains extent 方法并尝试检查是否被点击 点范围落在线范围上或线范围落在单击上 point extent.But 如果我点击线的中心,那么只有我得到 特征。 可以看到代码fiddle
谁能建议我有没有其他方法来检查点是否在线?
如果点的范围(用您的 extentToPoint()
函数填充)intersects()
与线的几何形状,您应该只过滤图形。
function identifyFeatures(evt){
var extentGeom = pointToExtent(map,evt.mapPoint,10);
var filteredGraphics = dojo.filter(testLayer.graphics, function(gg) {
return extentGeom.intersects(gg.geometry);
});
var content = "<i>Total Features: " + filteredGraphics.length + "</i>";
map.infoWindow.setContent(content);
map.infoWindow.setTitle("Identify Results");
map.infoWindow.show(evt.screenPoint,map.getInfoWindowAnchor(evt.screenPoint));
};