private void generateCandidatePositions() {
		Polygon p = new Polygon(new LinearRing(path.getExteriorRing().getCoordinateSequence(), path.getFactory()), new LinearRing[0], path.getFactory());
		Geometry inset = p.buffer(-3);
		if(inset.isEmpty()){
			inset = path;
		}
		Point interiorPoint = inset
				.getInteriorPoint();
		CenterAreaLabel interior = new CenterAreaLabel(text, interiorPoint);
		/*if(path.getArea()<(interior.getGeometry().getArea()/2)){
			// Don't add label if label area is at least double of shape area
			isEnoughSpaceForLabel = false;
			return;
		}*/
		addCandidate(interior);
		
		float labelHeight = text.getBBox().getHeight();
		
		Point topPoint = interiorPoint.getFactory().createPoint(new Coordinate(interiorPoint.getX(), interiorPoint.getY()-labelHeight/2));
		CenterAreaLabel top = new CenterAreaLabel(text, topPoint);
		addCandidate(top);

		Point lowerPoint = interiorPoint.getFactory().createPoint(new Coordinate(interiorPoint.getX(), interiorPoint.getY()+labelHeight/2));
		CenterAreaLabel lower = new CenterAreaLabel(text, lowerPoint);
		addCandidate(lower);

		CenterAreaLabel centeriod = new CenterAreaLabel(text, inset
				.getCentroid());
		addCandidate(centeriod);
	}