Вы можете использовать ack . Это похоже на grep для исходного кода.
Просто выполните:
ack 'text-to-find-here'
В корневом каталоге.
Вы также можете использовать regular выражения , укажите тип файла и т. д.
UPDATE
Я только что открыл Silver Searcher , который похож на ack, но 3 -5x быстрее, чем он, и даже игнорирует шаблоны из файла .gitignore
.
Просто попробовал алгоритм Ray Casting, который идентифицирует точку в многоугольнике. Это работает отлично.
Обратитесь к http://en.wikipedia.org/wiki/Point_in_polygon для диссертации о лучшем литье
private boolean isPointInPolygon(LatLng tap, ArrayList<LatLng> vertices) {
int intersectCount = 0;
for (int j = 0; j < vertices.size() - 1; j++) {
if (rayCastIntersect(tap, vertices.get(j), vertices.get(j + 1))) {
intersectCount++;
}
}
return ((intersectCount % 2) == 1); // odd = inside, even = outside;
}
private boolean rayCastIntersect(LatLng tap, LatLng vertA, LatLng vertB) {
double aY = vertA.latitude;
double bY = vertB.latitude;
double aX = vertA.longitude;
double bX = vertB.longitude;
double pY = tap.latitude;
double pX = tap.longitude;
if ((aY > pY && bY > pY) || (aY < pY && bY < pY)
|| (aX < pX && bX < pX)) {
return false; // a and b can't both be above or below pt.y, and a or
// b must be east of pt.x
}
double m = (aY - bY) / (aX - bX); // Rise over run
double bee = (-aX) * m + aY; // y = mx + b
double x = (pY - bee) / m; // algebra is neat!
return x > pX;
}
См. эту ссылку
Обнаружение многоугольника Touch Map API V2
Его алгоритм RayCasting может помочь вам:)
Краткое описание алгоритма:
Горизонтальная линия выводится из вашей точки вправо, если она пересекает стороны многоугольника нечетным числом раз, тогда точка находится внутри другого многоугольника :)
Эти ссылки wiki дадут вам полную идею:
Я нашел метод лучевого литья ненадежным, но в итоге я использовал PolyUtil
из карт google.
Вам нужна зависимость compile 'com.google.maps.android:android-maps-utils:0.5'
. И тогда метод выглядит это
PolyUtil.containsLocation(userLocation, polyPointsList, false);
EDIT
Это описание этого метода найдено в исходном коде
Вычисляет, лежит ли данная точка внутри указанного многоугольника , Полигон всегда считается закрытым, независимо от того, равна ли последняя точка первой или нет. Внутри определяется как не содержащий Южный полюс - Южный полюс всегда снаружи. Многоугольник формируется из больших сегментов круга, если геодезическая истинна, а остальных - лаксодромных.
blockquote>