@Override
    public final boolean accept(EdgeIteratorState iter) {
        if (!edgeFilter.accept(iter)) {
            return false;
        }

        if (pointHint.isEmpty()) {
            return true;
        }

        String name = iter.getName();
        if (name == null || name.isEmpty()) {
            return false;
        }

        BBox bbox = createBBox(iter);
        if (!pointCircle.intersects(bbox)) {
            return false;
        }

        name = removeRelation(name);
        String edgeName = prepareName(name);

        return isJaroWinklerSimilar(pointHint, edgeName);
    }
@Test
    public void testDistanceFiltering() {
        BaseGraph g = new BaseGraph.Builder(1).create();
        NodeAccess na = g.getNodeAccess();

        GHPoint pointFarAway = new GHPoint(49.458629, 11.146124);
        GHPoint point25mAway = new GHPoint(49.464871, 11.143575);
        GHPoint point200mAway = new GHPoint(49.464598, 11.149039);

        int farAwayId = 0;
        int nodeId50 = 1;
        int nodeID200 = 2;

        na.setNode(farAwayId, pointFarAway.lat, pointFarAway.lon);
        na.setNode(nodeId50, point25mAway.lat, point25mAway.lon);
        na.setNode(nodeID200, point200mAway.lat, point200mAway.lon);

        // Check that it matches a street 50m away
        EdgeIteratorState edge1 = g.edge(nodeId50, farAwayId).setKeyValues(Map.of(STREET_NAME, new KValue("Wentworth Street")));
        assertTrue(createNameSimilarityEdgeFilter("Wentworth Street").accept(edge1));

        // Check that it doesn't match streets 200m away
        EdgeIteratorState edge2 = g.edge(nodeID200, farAwayId).setKeyValues(Map.of(STREET_NAME, new KValue("Wentworth Street")));
        assertFalse(createNameSimilarityEdgeFilter("Wentworth Street").accept(edge2));
    }